我正在嘗試爲指令編寫測試,所以我正在用$compile
手動構建它。 (是的,我知道我可以使用e2e測試,但在這種情況下,我想測試一些DOM獨立邏輯,因此我使用單元測試方法。)錯誤:不可分配的模型表達式:undefined
我有一個我綁定的字段與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
轉載於本fiddle。
除了一次註釋掉1行並刷新以外,如何判斷其抱怨的範圍元素?它沒有在錯誤消息中說明這個錯誤。只有總體的指令名稱。 OP的例子很明顯,但是如果它發生在一個有很多綁定的指令中? –
@JoshRibakoff一種方法是在Angular代碼中引入一個斷點並檢查變量以查看它在'nodeLinkFn'中尋找哪個參數 - 具體來說,'definition'變量應該包含有用的信息。 – cincodenada