我能找到的所有文档都说明了视图自动更新模型。但是,使用示例控制器:
var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.controller('PhoneListCtrl', function ($scope) {
$scope.phones = [
{'name': 'Nexus S',
'snippet': 'Fast just got faster with Nexus S.',
'age': 1},
{'name': 'Motorola XOOM™ with Wi-Fi',
'snippet': 'The Next, Next Generation tablet.',
'age': 2},
{'name': 'MOTOROLA XOOM™',
'snippet': 'The Next, Next Generation tablet.',
'age': 3}
];
$scope.orderProp = 'age';
});
在JavaScript中,我如何(例如)将手机更改为空数组?基本上我想做
$scope.phones = [];
(并自动更新视图),但我无法弄清楚如何进入'手机变量
答案 0 :(得分:2)
如果您只是想清空数组,那么在该控制器内部添加一个清除数组的函数。然后使用指令来调用该函数。例如:
JS:
$scope.clearPhoneData = function() {
$scope.phones.length = 0;
};
HTML:
<div ng-click="clearPhoneData()">Clear</div>
如果您尝试从此控制器外部访问数据,那么您真正想要设置的是service
,它会检索手机数据并将其提供给controllers
使用service
。然后,您的controller
使用service
作为dependency
并执行以下操作:
$scope.$watch(function() {
return phoneService.phones;
}, function(newData) {
$scope.phones = newData;
});
目前还不清楚你想要什么,但我恳请你不要在没必要时使用$scope.$apply()
。
这是一个应该帮助你的傻瓜:http://plnkr.co/edit/LwvZCz941CX9BGMqRhXe?p=preview
它显示了service
的实现以及如何使用它来跨多个控制器访问数据,清除数据等。