不确定如何正确命名我的问题,我想在我的情况下,它也可以标题为“范围未检测到 DOM 操作”,但这完全取决于我的问题的方法。
首先,我按照 AngularJS 主网站上的官方示例以及与 Mongolab 连接的项目应用程序进行操作。唯一的区别是我想添加一个文件输入,该输入读取文件名及其 lastModifiedDate 属性,然后将这些值应用到我的表单。为了使文件输入工作,我遵循了这个 example here .
我让它工作了,但问题是当值应用到我的表单范围时没有接受更改。
我正在 .apply() 函数中进行 DOM 操作,并且也使用 $compile,但是缺少一些东西。或者也许有一种更简单的方法而不需要进行 DOM 操作?
这是我到目前为止所得到的,请看看这个笨蛋 - http://plnkr.co/edit/mkc4K4?p=preview (只需单击加号图标即可添加新条目,然后尝试选择一个文件。)
最佳答案
需要在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
关于forms - AngularJS - 将输入文件范围绑定(bind)到不同的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656261/