我有一個問題綁定與角度的數據。
我的模型:雙向綁定不是woking
<div id="ng-app-MyApp">
<ng-view></ng-view>
</div>
控制器:
angular.module("MyApp.controllers", []).
controller("myController", function($scope, service) {
$scope.someprop = "12";
$scope.nameFilter = "text here";
$scope.val = "";
setTimeout(function() {
$scope.val = "321";
}, 1000);
$.when(service.getItems()).done(function (items) {
console.log(items.length);
$scope.someprop = "hello";
});
});
的index.html:
<div>
<input type="text" ng-model="nameFilter" />
<div>{{nameFilter}}</div>
<table>
<tr>
<td>{{someprop}}</td>
<td>{{val}}</td>
</tr>
</table>
</div>
我使用手動結合(angular.bootstrap($("#ng-app-MyApp")[0], ["MyApp"]);
)。 service.getItems()
返回jQuery延遲對象。 當頁面加載時,我預計someprop
的值變成「hello」,而val
將等於「321」。但實際上並沒有發生。當我開始在文本框中輸入內容時,執行了數據綁定,我可以在用戶界面上看到someprop =「hello」和val =「321」。
我不明白,爲什麼這個屬性不會自動更新,但只有當我開始輸入文本框?
能否請您解釋一下,爲什麼我需要調用'適用()'手動?在我看到的所有例子中都沒有應用方法。 – Kai
'service.getItems()'是一些對象上的延遲封裝。它不打算用於Ajax請求。是否有可能使用角度來製作這種包裝?類似於'var def = angular.deferred(); ...' – Kai
@Kai,https://docs.angularjs.org/api/ng/service/$q –