gpt4 book ai didi

javascript - 指令 - 从 View 中获取值 -scope "@"

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

我正在尝试制作一个按钮,每次单击时都会更改其样式。

控制台不断出错 - “initial”未定义。我一直在试图找出原因,但到目前为止还没有运气。

这是从 View 接收值的错误方式吗?

此外,我在链接函数中创建了一个点击事件,但它似乎根本不起作用。

如果您能帮助我了解如何制定有效的 Angular Directive(指令),那就太好了!谢谢!


html

<div button-ok initial="glyphicon-plus" after="glyphicon-ok" base="glyphicon"></div>

我做了一个叫做“button-ok”的指令

  myapp

.run(function($templateCache) {
var button;

button = "<div class='btn btn-default'></div>";
$templateCache.put('okbutton.html', button);
})

.directive('buttonOk', function($templateCache) {
var icon;

icon = angular.element("<i></i>");

return {
restrict: 'EA',
scope: {
initial: "@",
after : "@",
base : "@"
},
replace : true,
template: $templateCache.get('okbutton.html'),
compile: function(tElem) {

icon.addClass(base);
icon.addClass(initial);

tElem.append(icon);

},
link: function(scope, elem) {

elem.click(function() {
if(icon.hasClass(initial)){
icon.removeClass(initial);
icon.addClass(after);
}else{
icon.removeClass(after);
icon.addClass(initial);
}
});
}
};
});
});

最佳答案

initial 在作用域上,所以需要用 scope.initial 来访问(同 baseafter)。这也意味着您无法在 compile() 函数中访问它,并且其中的代码需要移至 link()

关于javascript - 指令 - 从 View 中获取值 -scope "@",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23162306/

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