0
下面,彙總和測試通過MyCtrl進行設置。我看到「我的測試」正確顯示,但不顯示「summary.name」。我看到MySvc.get()的回調按預期執行,但是summary.name的更新值不會出現在UI上。爲什麼不更新模型的值,通過服務更新,在UI中更改?
爲什麼summary.name的更新值沒有出現在UI上的任何建議?
app.js:
...
.state('tab.edit', {
url: '/edit',
views: {
'tab-dash': {
templateUrl: 'templates/MyTemplate.html',
controller: 'MyCtrl'
}
}
})
...
MyTemplate.html:
<label class="item item-input item-stacked-label">
<span class="input-label">Name</span>
<textarea rows="8" placeholder="Nothing yet." ng-model="summary.name"></textarea>
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">TEST</span>
<textarea rows="8" placeholder="Nothing yet." ng-model="test"></textarea>
</label>
controllers.js:
...
.controller('MyCtrl', function($scope, MySvc) {
console.log("MyCtrl: entered");
$scope.summary = MySvc.get(0);
$scope.test = "my test";
...
MySvc.get(0)返回(我看到這個回調執行並更改ret.name):
return $http.get(url).then(function(response) {
console.log("MySvc callback: response.data = %o", response.data);
console.log("MySvc callback: response.data.name = " + response.data.name);
ret = new MySvc(response.data);
console.log("MySvc callback: ret.name = " + ret.name);
return ret;
});
不能說你提供什麼問題,但這裏有一些指針。 (返回):返回$ http.get(url).then(函數(響應){' )您應該從服務中返回一個承諾並解析('.then')它在控制器並在那裏設置'$ scope.summary' 您需要提供更多的MySvc來解決當前代碼中的主要問題。 – Absor 2014-10-29 20:54:40