使用ui-router
領域,它呈現之前,像這樣我解決數據所以它是提供給我的觀點:
.state('app.userprofile', {
url: '/userprofile',
component: 'user',
resolve: {
user: ['userService', function(userService) {
return userService.fetchUser();
}],
timezones: ['timezoneService', function(timezoneService){
return timezoneService.fetchUsaTimeZones();
}]
}
})
}]);
如果我登錄到從控制檯我state
,它顯示了響應:
resolve: {
user: ['userService', function(userService) {
return userService.fetchUser().then(function(response){console.log(response)};
}]
我想我user-profile.htm
內填充字段,在user component
中指定,使用默認控制器參考$ctrl
。我在整個應用程序中都使用了這個功能,但由於某種原因,在此狀態下,它無法完成此操作。
問題
爲什麼我的領域無法加載由模型提供的數據?
app.component('user', {
bindings: { user: '<' },
bindings: { timezones: '<' },
templateUrl: 'p3sweb/app/components/user/views/user-profile.htm',
controller: ['userService', 'timezoneService', function(userService, timezoneService) {
var vm = this;
//functinality for updating user
}]
});
app.factory('userService', function($http, $q) {
var factory = {};
var REST_SERVICE_URI = 'http://localhost:8080/p3sweb/rest-user/';
factory.fetchUser = function() {
var deferred = $q.defer();
$http.get(REST_SERVICE_URI)
.then(
function (response) {
deferred.resolve(response.data);
},
function(errResponse){
console.error('Error while fetching user');
deferred.reject(errResponse);
}
);
return deferred.promise;
}
return factory;
});
<form action="#" method="POST" name="userProfileForm">
<div>
<legend >User Info</legend>
<div class="form-group row">
<label for="emailAddress">Email address</label>
<div>
<input type="email" name="emailAddress" ng-model="$ctrl.user.emailAddress">
</div>
</div>
</div>
</form>
'綁定' 可以整理成一個;綁定:{user:'<',timezones:'<'}可能是第二個覆蓋第一個;還你在哪裏嵌入 在你的HTML? –
rrd
謝謝你指出,不知道爲什麼我這樣做,但不幸的是,這不是問題。我的組件是我的整個html,並通過'ui-router''加載'' –
@rrd,你是對的!請將它寫爲答案,我會將其標記爲正確。愚蠢的錯誤代表我 –