3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
var app = angular.module('myApp',[]);
app.controller('myCtrl',function($scope){
$scope.accept= function(){
...
}
}
app.directive('myDir',
function(){
return {
restrict:'EA',
replace: true,
template: '<input ng-click="test()"></input>',
scope:{
test: '&'
},
link: function(scope, element, attrs) {
元素.bind("click",function(){
scope.accept();
})
}
}
}
);

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
可以把myCtrl
里的test function
存到service
里,然后在directive
里調(diào)用service
里的test function
app.controller('myCtrl',function($scope,methods){
$scope.test= function(){
...
}
methods.test = $scope.test;
}
app.factory('methods',function(){
return {
test: null
};
})
app.directive('myDir',
function(){
return {
restrict:'EA',
replace: true,
template: '<input ng-click="accept()"></input>',
scope:{
},
controller: function ($scope,methods) {
$scope.accept = function () {
console.log('accept fn');
methods.test();
};
}
}
}
);
或者:
var app = angular.module('myApp',[]);
app.controller('myCtrl',function($scope){
$scope.test= function(){
...
}
}
app.directive('myDir',function(){
return {
restrict:'EA',
replace: true,
template: '<input ng-click="test()"></input>',
scope:{
test: '&'
},
controller: function(){}
}
});
HTML:
<my-dir test="test()"></my-dir>

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
<button type="button" ng-click="accept()">test</button>
這是 html
里的調(diào)用方式?
然后這個(gè)是 directie 的 template: <input ng-click="test()"></input>
?
所以你的 myDir
這個(gè) directive 到底是在哪兒調(diào)用的?另外,如果方便,請(qǐng)你大概描述一下你要實(shí)現(xiàn)什么功能。
- 3 回答
- 0 關(guān)注
- 1079 瀏覽
添加回答
舉報(bào)