Javascript 从事件自动更新视图
我有一个列表正在被馈送到视图,它被正确显示,但是当一个事件触发时,该事件可能会将一个项目添加到列表中,我希望使用列表中的新项目更新视图 因此,我们的想法是:Javascript 从事件自动更新视图,javascript,node.js,angularjs,node-webkit,Javascript,Node.js,Angularjs,Node Webkit,我有一个列表正在被馈送到视图,它被正确显示,但是当一个事件触发时,该事件可能会将一个项目添加到列表中,我希望使用列表中的新项目更新视图 因此,我们的想法是: .factory('Files', function() { return service.getFiles() }) .controller('HomeCtrl', function($scope, Files) { $scope.files = Files }) 现在进入服务: Service.prototype.getFi
.factory('Files', function() {
return service.getFiles()
})
.controller('HomeCtrl', function($scope, Files) {
$scope.files = Files
})
现在进入服务
:
Service.prototype.getFiles = function() {
return this.files
}
以及添加列表的事件:
this.on('created', function(f) {
this.files.push(f)
})
因此,当发出事件created
时,它将添加到文件列表this.files
,指向服务.getFiles()
的工厂应该能够看到数据有新内容
Note:
This is all local, the events are done with node.js watching a folder.
This is using Nodewebkit and AngularJS and Node.JS Modules
您所要做的就是侦听事件并调用
$scope.$apply
以按范围刷新视图
.controller('HomeCtrl', function($scope, Files) {
$scope.files = Files.getFiles();
Files.on("created", function(){
$scope.files = Files.getFiles();
$scope.$apply();
});
})
我只是想问一些关于工厂值的问题,当值被修改时,工厂不会更新。为什么呢
$scope.selectedSource=Setting.getLastSelectedSource()
但是当我设置.setLastSelectedSource数据.id时,$scope.selectedSource
不会被检测到.container fluid(ng show=“sources”)
当事件在其他控制器中触发时,如何更新视图?(即:headerCtrl中触发事件,footerCtrl中有要更新的内容)?使用角度事件引擎。可能要检查rootScope.on/rootScope.emit