angularjs – 在指令中创建私有函数

前端之家收集整理的这篇文章主要介绍了angularjs – 在指令中创建私有函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在指令内创建一个私有函数?我需要在一个指令中做一个相当复杂的过程来填充指令的模板.

这样的东西(HTML):

@H_403_3@<textarea the-result="data"> </textarea>

使用Javascript:

@H_403_3@angular .module("MyModule") .directive("theResult",[function () { return { scope: { theResult: "=" // calculatestuff = function(d){ // ... } can't put it here (error) },template: ' ... ' + '{{calculatestuff(theResult.someproperties)}}' + ' ... ' } }])

我可以在哪里放钙?

请注意,directive(directiveName,directiveFunction)仅使用directiveFunction返回.你可以做任何你想要的内部的这个功能,例如,定义其他功能: @H_403_3@angular .module("MyModule") .directive("theResult",[function () { var calculateStuff = function (d) { // ... }; return { // ... } }]);

但是当然,在$digest循环中,calculateStuff不再存在,并且没有链接到作用域,所以你将无法在模板中调用它.如果这真的是你想要做的,那么考虑在连接阶段将你的功能放在范围内:

@H_403_3@angular .module("MyModule") .directive("theResult",[function () { return { scope: { theResult: "=" },template: ' ... ' + '{{calculatestuff(theResult.someproperties)}}' + ' ... ',link : function ($scope) { $scope.calculateStuff = function (d) { // ... }; } } }]);

由于您使用隔离的作用域,该函数将不能从指令外部访问.

原文链接:https://www.f2er.com/angularjs/140481.html

猜你在找的Angularjs相关文章