0
<div my-directive>
<btn id="myBtn" ng-click="handleClick(mymodel.id)"><btn>
</div>
app.controller('myCtrl', function($scope) {
$scope.handleClick = function(id) {
//Do state change here but don't access DOM here.
}).
directive('myDirective',function() {
return {
link: function (scope, element) {
var myBtn = angular.element(document.querySelector("#myBtn"));
//Binding for second time! that I want to avoid. But.
myBtn.bind('click', function(e) {
var url = "data://adsf"; // Url is generated here because I need access to
//element to generate url.
//Call $scope function here for handling generated url.
});
}
}
});
在上面的例子中,myBtn事件绑定了两次,在ng-click和bind函数中。 如何避免它没有任何访问DOM或控制器内的操作?根据AngularJS指导方针,如何设置状态并同时操作DOM。如何在AngularJS中同时处理DOM操作和状态变化?
如果您使用指令 – dandavis
,您不需要硬编码的ng-click,那么为什么您需要第二个点击监听器? –
我稍微更新了代码,我必须通过ng-click来传递模型数据。当然,我可以从指令调用handleClick,但模型不能通过指令访问?我想通过id来处理Click。 – sat