Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从事件自动更新视图_Javascript_Node.js_Angularjs_Node Webkit - Fatal编程技术网

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