Angularjs を使用してファイルマネージャーを作成しようとしていますが、最近 Breezejs を発見し、それを使用してバックエンドと通信し、モデルの関係を管理することに興味がありました。バックエンドは、私が完全に制御できる REST API です。
しかし、私は問題に直面しています。ファイルの ID はわかっているので、base64 でエンコードされたファイルの URL の形式backend_url/files/:fileId
のURL にリクエストを送信したいと思います。:fileId
ドキュメントによると、EntityManager.fetchEntityByKey()
この目的で使用する必要があります。これは、Angularjs サービスを作成するために使用する関数です。
var FilestoreService = function () {
var dataService, manager;
dataService = new breeze.DataService({
serviceName: "../VFS-Symfony-Backend/web/app_dev.php/filesystems/local/",
hasServerMetadata: false
});
manager = new breeze.EntityManager({
dataService: dataService
});
manager.metadataStore.addEntityType(fileEntityType);
return {
findOneById: function (id) {
/* I have tried to leave the 3th argument empty or changing it to false with the same results */
return manager.fetchEntityByKey("File", id, true).then(function(){console.log("success");}).fail(function(){console.log("failure");});
/* I have also tried the following approach with the same result:
var type, key, query;
type = manager.metadataStore.getEntityType("File");
key = new breeze.EntityKey(type, id);
query = breeze.EntityQuery.fromEntityKey(key);
return manager.executeQuery(query);
*/
}
};
};
は次のようにfileEntityType
定義されます。
var FileEntityType = new breeze.EntityType({
shortName: "File"
});
FileEntityType.addProperty(new breeze.DataProperty({
name: "uri",
dataType: breeze.DataType.String,
isNullable: false
}));
FileEntityType.addProperty(new breeze.DataProperty({
name: "mTime",
dataType: breeze.DataType.Int16,
isNullable: false
}));
FileEntityType.addProperty(new breeze.DataProperty({
name: "type",
dataType: breeze.DataType.String,
isNullable: false
}));
FileEntityType.addProperty(new breeze.DataProperty({
name: "size",
dataType: breeze.DataType.int16,
isNullable: true
}));
ただし、私が呼び出すfindOneById
と、サーバーへの要求は行われず、2 行がコンソールに記録されます。
Should be empty:[]
によって q.jsfailure
(fail()
コールバック関数による)
「通常の」クエリ ( manager.executeQuery(new breeze.EntityQuery().from("Files"));
) では、期待どおりにサーバーへの要求が発生します。
私はここで本当に迷っています。私は週末を通して解決策を探していましたが、誰かが私を助けてくれることを願って、最終的にSOに投稿することにしました.
読んでくれてありがとう。