2013-03-27 132 views
2

不知道如何正确地标题我的问题,我想我的情况下,它也可以被标题为“DOM操作不被范围检测”,但这一切都取决于我的问题的方法。AngularJS - 绑定输入文件范围到不同的范围

首先,我跟着AngularJS主网站上的一个官方示例,使用与Mongolab连接的Projects应用程序。唯一的区别是我想添加一个文件输入,它读取文件名及其lastModifiedDate属性,然后将这些值应用于我的表单。为了使文件输入工作,我遵循这个example here

我做了它的工作,但问题是,当值被应用到我的表单范围没有拿起更改。

我在我的.apply()函数中执行DOM操作并使用$ compile,但是缺少一些东西。或者也许有一种更简单的方法,不用做DOM操作?

这里是我到目前为止,请看一看这个plunker - http://plnkr.co/edit/mkc4K4?p=preview (只需点击加号图标添加新条目,然后尝试选择一个文件)

回答

2

您需要在CreateCtrl添加监视声明

function CreateCtrl($scope, $location, Movie) { 

    $scope.inputfile = {}; 
    $scope.movie = {}; 

    $scope.$watch('inputfile.file', function(value){ 
     $scope.movie.filename = value ? value.name : ''; 
     $scope.movie.dateadded = value ? value.lastModifiedDate : ''; 
    }) 

    $scope.save = function() { 
     Movie.save($scope.movie, function(movie) { 
      $location.path('/edit/' + movie._id.$oid); 
     }); 
    }; 
} 

演示:Sample

+0

谢谢阿伦,这是完美的,没有必要甚至DOM操作! – braincomb 2013-03-27 20:11:11