2

質問に適切なタイトルを付ける方法がわかりませんでした。私の場合、「DOM操作がスコープによって検出されない」というタイトルも付けられると思いますが、それはすべて私の問題のアプローチによって異なります。

まず、AngularJSメインWebサイトの公式例に従って、Mongolabに接続するProjectsアプリを使用しました。唯一の違いは、ファイル名とそのlastModifiedDateプロパティを読み取り、それらの値をフォームに適用するファイル入力を追加することです。ファイル入力を機能させるために、ここでこの例に従いました。

私はそれを機能させましたが、問題は、値がフォームスコープに適用されたときに変更を取得しないことです。

.apply()関数でDOM操作を行っており、$ compileも使用していますが、何かが足りません。それとも、DOM操作を行わずに完全に簡単な方法がありますか?

これが私がこれまでに持っているものです、このプランカーを見てください-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 に答える