我有以下指令。
(function () {
'use strict';
angular.module('ap.App')
.directive('clearCancelFinishButtonsHtml', function () {
return {
scope: {
clearFunction: '='
},
replace: true,
templateUrl: 'directives/clearCancelFinishButtons.html',
link: function (scope, el, attrs) {
var clear= angular.element(el.find('button.clear'));
console.log(el.find('.clear'));
clear.bind("click", function () {
alert("here");
});
}
}
});
})();
它指向html文件如下
<div class="row pull-right">
<div class="col-lg-12 col-md-12 col-sm-12">
<button type="button" class="custom-default clear">CLEAR</button>
<button type="button" class="custom-danger">CANCEL</button>
<button type="button" class="custom-info" ng-click="ap.save()">FINISH</button>
</div>
</div>
我想要做的是在指令中抓取clear
类的按钮并向其传递一个click事件。由于某种原因,单击事件到元素本身似乎工作,但我无法得到子元素的绑定来绑定它。任何帮助将不胜感激。
PS。
我正在使用该指令
<clear-cancel-finish-buttons-html id="{{$id}}" clear-function="'resetConfigurationPageInputs'">
</clear-cancel-finish-buttons-html>
UPDATE ----------
我希望这种情况发生,因为我希望能够从指令声明本身动态添加和删除函数。
答案 0 :(得分:1)
谢谢大家的尝试,
我使用以下代码。
std::unordered_map<std::string, EdgeS> edges;
// Some extra stuff
EdgeS* Node::insertEdge(Node* to)
{
EdgeS edge = edges[to->name];
if(!edge.to)
edge.to = to;
edge.frequency++;
edge.packets_number++;
return &edge;
}
快乐的编码;)
答案 1 :(得分:0)
为什么不使用ng-click?
如果你这样做
link: function (scope, el, attrs) {
scope.clearClick = function () { alert('click') };
}
和
<button type="button" class="custom-default clear" ng-click="clearClick()">CLEAR</button>
然后它调用函数
答案 2 :(得分:0)
.find()
方法仅适用于标记名称(因此类选择器不会起作用)。所以这里的问题是el.find('.clear')
没有得到你的孩子元素。相反,请使用document.querySelector
,如下所示:
var clear= angular.element(el[0].querySelector('button.clear'));
如果您未在项目中包含jquery,那么您只能访问jqlite。您可以在jqlite docs中看到可以做什么和不能做什么。