2

不确定如何正确命名我的问题,我想在我的情况下它也可以命名为“范围未检测到 DOM 操作”,但这完全取决于我的问题的方法。

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

我让它工作了,但问题是当值被应用到我的表单范围时,并没有接受更改。

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

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

4

1 回答 1

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);
        });
    };
}

演示:示例

于 2013-03-27T11:05:23.690 回答