gpt4 book ai didi

javascript - Angularjs ES6 类指令

转载 作者:行者123 更新时间:2023-11-30 20:35:34 28 4
gpt4 key购买 nike

我正在尝试使用类来定义指令。 html 确实出现了,它确实显示它正在调用 ctor 和 Controller 函数。但是,我有一个类方法,我想通过 ng-click 在 html 中调用它,但它没有被调用。

请注意,我正在使用 1.3x,目前无法升级。

https://plnkr.co/edit/cWyyCahfoWWwk0UN49ep?p=preview

指令:

class StoreHours{

constructor(){
console.log("inside ctor");
this.restrict = 'E';
this.templateUrl = 'storeHours.html';
this.bindToController = true;
this.controllerAs = 'vm';
this.scope = {
hours: '=',
index: '=',
addNewHour: '&'
};
}

controller(){
console.log("inside controller");
}

// the member metod that I want ng-click to call
addNew(newHour){
var vm = this;

console.log("addNew()");

vm.addNewHour({ hour: newHour, index: vm.index });

vm.newHour = "";
}

// don't need this but just showing
link(scope, element, attrs){

}
}

app.directive('storeHours', () => new StoreHours);

HTML:

<div style="background-color: gray;">
<h1>I'm the store hours component!</h1>

<li ng-repeat="hrs in vm.hours">
{{hrs}}
</li>

<input type="text" ng-model="vm.newHour" />
<button ng-click="vm.addNew(vm.newHour)">Add New</button>
</div>

最佳答案

addNew()方法附加到类作用域,是否需要附加到controller()作用域(即不同)

在 Controller 中添加方法,你应该没问题。

  controller(){
console.log("inside controller");
var vm = this;
vm.addNew = function(newHour){
console.log("addNew()");
vm.addNewHour({ hour: newHour, index: vm.index });
vm.newHour = "";
}
}

关于javascript - Angularjs ES6 类指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49883780/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com