Angularjs 自定义指令的Pass参数
使用带组件的1.5角 包含自定义指令的某些父HTML:Angularjs 自定义指令的Pass参数,angularjs,angular-directive,Angularjs,Angular Directive,使用带组件的1.5角 包含自定义指令的某些父HTML: <my-thing resetFields='$ctrl.bReset'></my-thing> 以下是用于虚构的组件声明: alert(ctrl.reset); // alert is called in controller, but shows undefined function myThingComponent() { this.controller = {};
<my-thing resetFields='$ctrl.bReset'></my-thing>
以下是用于虚构的组件声明:
alert(ctrl.reset); // alert is called in controller, but shows undefined
function myThingComponent() {
this.controller = {};
this.bindings = {};
var component = this;
component.templateUrl = 'myThing.html';
component.controller = myThingCtrl;
component.transclude = true;
component.bindings = {
resetFields: '<' // one way binding is needed
};
}
警报(ctrl.reset);//警报在控制器中调用,但显示未定义
函数myThingComponent(){
this.controller={};
this.bindings={};
var分量=此;
component.templateUrl='myThing.html';
component.controller=myThingCtrl;
component.transclude=true;
组件绑定={
resetFields:“为实现此特性,您已创建如下指令:
angular.module("yourModule")
.directive("myThing",function(){
return {
...
restrict : "E",
scope:{
reset:"=reset",
....
},
.....
}
}
});
以组件方式
angular.module('yourModule').component('myThing', {
...
bindings: {
reset: '='
}
});
关键的一点是像上面一样使用范围属性,并说指令中的reset(在左边部分重置)属性与名为reset(=reset righth part)的范围属性绑定,其中“=”表示您有一个双向数据绑定
我希望这能帮助您以下是我制作的一个简单指令中的一个示例,该指令渲染了一个动画计数器
function numberCounter($interval) {
var directive = {
restrict: 'E',
scope: {
start: '@start',
end: '@end',
speed: '@speed'
},
template: '<% number | number : 0 %>',
link: link
};
...
}
函数编号计数器($interval){
var指令={
限制:'E',
范围:{
开始:“@start”,
结束:“@end”,
速度:“@speed”
},
模板:“”,
链接:链接
};
...
}
然后您可以在link函数中使用scope.start、scope.end和scope.speed。start、end和speed是属性。您的意思是bReset
是您的$scope
的一个变量吗?父组件控制器具有bReset值。您能给我们一个简单的示例(JSFiddle)吗?我们使用的是组件,没有模块?(我不熟悉这些角度细节)我遵循angular上的官方指南,我看到了使用模块。我整天都坐在那页上…还没有结果。现在看来我可以取得进展。你可以在控制器中引用这一点,你使用的是无作用域应用程序组件是指令而不是模块的新方式
function numberCounter($interval) {
var directive = {
restrict: 'E',
scope: {
start: '@start',
end: '@end',
speed: '@speed'
},
template: '<% number | number : 0 %>',
link: link
};
...
}