routeprovider で解決策が見つかりましたが、約束を返すだけなので、成功か失敗かはわかりません。これは私が持っているものです
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
return Restangular.one('Items').get();
}
}
})
これで機能しますが、成功または失敗をどのように検出しますか。これを resolve メソッドに入力することもできますが、成功と失敗で何を返すのでしょうか。コントローラーにアイテムを注入する必要があることを思い出してください。
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
Restangular.one('Items').get().then(function(data) {
// success
}, function() {
// failure
});
}
}
})
ここで例を見ましたが、これが必要なものであり、どのように使用するのか混乱していますか?
AngularJS - $routeProvider:resolve で $http の約束を拒否しました
手動の約束を返しているようです。
resolve: {
response: ['Warranty'
'$q',
function(Warranty, $q) {
var dfd = $q.defer();
Warranty.sendRequest().then(function(result) {
dfd.resolve({
success: true,
result: result
});
}, function(error) {
dfd.resolve({
success: false,
reason: error
});
});
return dfd.promise;
}
]
}
私が本当にやりたいことは、コントローラーに解決された変数をコントローラーに注入することです。失敗した場合は、コントローラーの失敗にもアクセスして、ユーザーに不可能であることを表示できるようにしたいと思います。問題によりレンダリングされます。