我收到錯誤消息時錯誤:試圖在ES6中創建一個angularJS指令。試圖雙向數據綁定
Expression 'undefined' in attribute 'myVar' used with directive 'myDirective' is non-assignable
試圖建立一個雙向數據綁定時。我不明白爲什麼。
我試圖做的是將我的指令中的複選框的值綁定到其他地方的控制器中的值。
我在ES6中使用angularJS 1.5.7。
下面是相關代碼:
我的指令及其控制器
export default class myDirective {
constructor() {
this.template = require('./template.html);
this.restrict = 'E';
this.scope = {};
this.bindToController = {
districts: '<',
myVar: '='
};
this.controller = MyController;
this.controllerAs = 'ctrl';
}
}
class MyController {
constructor() {
this.simulateQuery = false;
this.selected = '';
this.searchText = '';
}
checkMyVar(){
if(this.myVar){
this.selected = null;
this.searchText = '';
}
}
querySearch(query){
var result = query;
? this.districts.filter(this.createFilterForQuery(query))
: this.districts;
return results;
}
createFilterForQuery(query){
var lowercaseQuery = angular.lowercase(query);
return function filterFn(district){
return (district.value.indexOf(lowercaseQuery) !== -1);
}
}
}
template.html
<div flex=30>
<md-checkbox class="blue" ng-model="ctrl.myVar" ng-change="ctrl.checkMyVar()">myVar</md-checkbox>
</div>
該指令的用法
<my-directive myVar="ctrl.myVar"></my-directive>
myVar的這裏在這個構造函數中聲明模板控制器:
this.myVar = false;
謝謝。這是正確的。 – mTv