私は指示のテストを書こうとしていますので、私は$compile
で手作業で作っています。 (はい、私はこれにe2eテストを使用できることを知っていますが、この場合、私は単体テストのアプローチを使用しているので、私は単体テストのアプローチを使用しているので、私はいくつかのDOMの独立したロジックをテストします)。エラー:割り当て不可能なモデル式:未定義
私はバインディング〜へscope: {foo: '='}
。私はディレクティブのスコープでそれを設定しようとすると、私は次のエラーを取得する:
Error: Non-assignable model expression: undefined (directive: foo)
at Error (<anonymous>)
at $get.parentSet (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:4146:25)
at Object.<anonymous> (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:4160:23)
at Object.$get.Scope.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:7693:38)
at Object.$get.Scope.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:7894:24)
at SNAKE_CASE_REGEXP (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:930:13)
at Object.invoke (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:2788:25)
at bootstrap (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:928:12)
at angularInit (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:904:5)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:14397:5
。これは、属性名「バー」のためのディレクティブ要素(<div foo></div>
)に見て、あなたのディレクティブとオブジェクト内の双方向のデータバインディングを行うために起こっていること
scope: {
bar: '='
}
:あなたが持っているあなたのディレクティブで
一度に1行をコメントアウトするのとは別に、どのスコープ要素について不平を言うことができますか?このエラーのエラーメッセージには記載されていません。全体的なディレクティブ名のみ。 OPの例は明白ですが、多くのバインディングを持つディレクティブが発生した場合はどうなりますか? –
@JoshRibakoff 1つの方法は、Angularコードにブレークポイントをスローし、変数が 'nodeLinkFn'でどのパラメータを探しているかを調べることです。具体的には、' definition'変数に有用な情報が含まれているはずです。 – cincodenada