指令如何使用某些参数从控制器调用函数?
我想将变量myVar赋给作用域。$apply(attrs.whattodo);
HTML:
<div ng-app="component">
<div ng-controller="ctrl">
<span ng-repeat="i in myarray">
<span customattr whattodo="addVal">{{i}}</span>
</span>
</div>
控制器JS:
function ctrl($scope) {
$scope.myarray = [1];
$scope.addVal = function (value) {
$scope.myarray.push(value);
}
}
指令JS:
angular.module('component', []).directive('customattr', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var myVar = 5;
scope.$apply(attrs.whattodo);
}
};
});
发布于 2013-04-22 04:24:21
在html中
whattodo="addVal(value)"
in指令
scope.$apply(function(s){
s.whattodo({value : myVar});
});
发布于 2015-10-08 18:54:18
为什么不在独立作用域中使用"&“符号?
<body ng-controller="MainCtrl">
Value: {{value}}!
<button customattr add-val="addValue(value)">Add</button>
</body>
在控制器中:
function ctrl($scope) {
$scope.myarray = [1];
$scope.addValue = function (value) {
$scope.myarray.push(value);
}
}
在指令中:
angular.module('component', []).directive('customattr', function () {
return {
restrict: 'A',
scope: {
addVal: "&"
},
controller: function ($scope) {
var myVar = 5;
// To execute addVal in controller with 'value' param
$scope.addVal({value: value})
}
};
});
https://stackoverflow.com/questions/16135711
复制相似问题