我不确定如何正确地标题我的问题,我想在我的情况下它也可以标题为“DOM操作未被范围检测到”,但这一切都取决于我的问题的方法。
首先,我在AngularJS主网站上使用与Mongolab连接的Projects应用程序的官方示例。唯一的区别是我想添加一个文件输入,它读取文件名及其lastModifiedDate属性,然后将这些值应用于我的表单。为了使文件输入有效,我遵循了example here。
我使它工作,但问题是,当值应用于我的表单范围时,没有获取更改。
我在我的.apply()函数中使用$操作并使用$ compile,但是缺少了一些东西。或者,如果没有进行DOM操作,可能会有更简单的方法吗?
以下是我到目前为止的情况,请看一下这个傻瓜 - http://plnkr.co/edit/mkc4K4?p=preview (只需单击加号图标即可添加新条目,然后尝试选择文件。)
答案 0 :(得分:2)
您需要在CreateCtrl
中添加watch语句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