![](/img/trans.png)
[英]Angular: ngFor not updating the view when the objects of array are changed
[英]Updating HTML view when Angular array changed
在下面的代碼中,我在數組的第一項中更改了對象值,但是在弄清楚如何“刷新” HTML視圖以使您在瀏覽器中看到的內容反映了強制更改時遇到了麻煩。
var dataArray = [{ name: 'fax.doc', size: 100, }, { name: 'fax.pdf', size: 110, }, { name: 'fax.xls', size: 120, }]; (function() { var app = angular.module('myApp', []); app.controller('AppController', function() { this.files = dataArray; }); })(); function changeSomething() { dataArray[0].name = "facsimile.doc"; // alert(dataArray[0].name); }
<!doctype html> <html ng-app="myApp"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> </head> <body ng-controller="AppController as box" onload="changeSomething()"> <table border="1"> <tr ng-repeat="file in box.files"> <td>{{file.name}}</td> <td>{{file.size}} bytes</td> </tr> </table> </body> </html>
需要從Angular上下文中調用某些內容。 C
將app.controller部分保留為:
app.controller('AppController', function() {
this.files = dataArray;
this.changeSomething = function() {
dataArray[0].name = "facsimile.doc";
alert(dataArray[0].name);
};
});
和html是:
<body ng-controller="AppController as box" ng-init="box.changeSomething()">
可以使用ng-init() (native angularjs)代替onload() (本機javascript)來更改值:
控制器(您的功能進入控制器):
app.controller('AppController', function() {
var vm = this;
vm.files = dataArray;
vm.changeSomething= function() {
vm.files[0].name = "facsimile.doc";
alert(dataArray[0].name);
};
});
的HTML
<body ng-controller="AppController as box" ng-init="changeSomething()">
//your code here
</body>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.