2017-07-25 19 views
1

使用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)}; 
    }] 

enter image description here

我想我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> 
+0

'綁定' 可以整理成一個;綁定:{user:'<',timezones:'<'}可能是第二個覆蓋第一個;還你在哪裏嵌入在你的HTML? – rrd

+0

謝謝你指出,不知道爲什麼我這樣做,但不幸的是,這不是問題。我的組件是我的整個html,並通過'ui-router''加載'' –

+0

@rrd,你是對的!請將它寫爲答案,我會將其標記爲正確。愚蠢的錯誤代表我 –

回答

1

這是綁定的,第二個是覆蓋第一:

bindings: { 
    user: '<', 
    timezones: '<' 
} 

這應該解決它:)

+0

再次感謝您的時間! –

+0

很高興有幫助! – rrd