如何从 JavaScript 调用指令函数
how to Invoke directive function from javascript
JavaScript 函数:
var API = (function(){
return {
function invokeDirective(){
invvoke();
$scope.setItem() // to directive
}
}
});
命令:
angular.module('sampleComponents', ['$strap.directives']).directive('titlebar',
function($filter,$timeout)
{
return {
restrict: 'AE',
replace: true,
scope: true,
transclude: true,
template: '<div class="searchBar r etc ........',
controller: function($scope,$http,$timeout)
{
$scope.setItem = function(){
// want to invoke this function from api.js -
}
}
link: function(scope, element, attrs){
// etc:
}
});
如何从api.js
调用$scope.setItem
?可能吗?请指教。
(目前,我正在使用计时器,但这会产生一些性能问题)
是的,你可以用一种非常笨拙的方式做到这一点。
演示代码:
//This is too get scope outside of angular controller/service/directive
//with a hacky way to do that.
var $injector =angular.injector(['ng','MyApp']);
var html = "<div titlebar=''></div>";
$injector.invoke(function($compile, $rootScope){
var $scope = $rootScope.$new();
var result= $compile(html)($scope);
var cScope = result.scope(); // This is scope in directive controller. : )
//Do anything you want with this scope .
});
这是Jsfiddle。
快乐编码。
相关文章:
- 从html创建一个指令,该指令按类名应用函数
- AngularJS指令单元测试中未定义的函数
- AngularJS指令部分应用的函数don'不起作用
- 角度指令's链接函数未被调用
- 从子指令调用指令函数不起作用
- 参数未在指令函数中传递
- 如何从 JavaScript 调用指令函数
- Angular.js调用控制器中的指令函数
- 将事件发送到范围中的角度指令函数
- 从父指令角度调用指令函数
- 在具有不同控制器的视图中使用ng-click和指令函数
- 通过参数将 mongo 文档 ID 传递给角度指令函数会抛出解析错误
- Angular指令——函数执行的正确顺序
- 又一个没有传递参数的Angular指令函数
- 如何使子链接指令函数在父控制器之前运行
- AngularJS中指令函数的执行顺序
- 在没有应用指令函数的指令内部重复
- 使用$scope.$parent.$$childHead从控制器访问指令函数.AngularJS中的functionNa
- angularjs设计.从另一个控制器调用指令函数
- 调用angularjs指令函数的范围问题