相关疑难解决方法(0)

请用AngularJS $注入器解释一下明确的例子

由于官方文档对$injector(服务)的解释不足,我很难理解它是如何工作的.有多少$injector可以彼此每个应用程序?我应该什么时候使用它?$injector工作怎么样?(依此类推)请向我提供一个真实世界的解释和一些JavaScript沙盒示例.

angularjs

52
推荐指数
1
解决办法
4万
查看次数

AngularJS动态注入范围或控制器

是否可以在运行期间注入示波器或控制器?或任何其他建议动态地将服务注入控制器?

Application.controller('IndexController', function($scope){

    // some actions

    if(someconditions) {
            $scope.$inject = [someServiceName];
            // and here i want to use service methods 
    }

});
Run Code Online (Sandbox Code Playgroud)

提前致谢

javascript angularjs

15
推荐指数
1
解决办法
3万
查看次数

角度范围混乱

所以我要说我正在编写一个自定义指令,将模板加载到div中.我的自定义指令被调用loadClickedTpl.当loadClickedTpl点击它应该读取属性和模板装入#target.

到目前为止,我的HTML看起来像这样:

 <html np-app="mymodule">
      <head>...</head>
      <body>

           <a loadClickedTpl tplSrc="myTpl" > Click Me to load template </a>

           <div id="target" ng-include src="clickedTpl"></div>

           <script type="text/ng-template" id="myTpl">
                <h1>Loaded</h1>
           </script>

      </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

问题是将clickedTplvar 设置为指向模板.如果它在html中完成,那么<div id="target" ng-include src="'myTpl'"></div>它可以正常工作,以编程方式执行它证明是一个挑战.这是我到目前为止所尝试的:

angular.module('loadATpl').directive 'loadClickedTpl', ->
     (scope, element, attrs) ->
           element.bind 'click', -> 
                # does not work
                scope.clickedTpl = attrs.tplSrc

                # also does not work
                angular.injector(['ng']).invoke ($rootScope) ->
                       $rootScope.clickedTpl = attrs.tplSrc

                # obviously does not work
                clickedTpl = atts.tplSrc

angular.module('mymodule', ['loadATpl']) …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

1
推荐指数
1
解决办法
5906
查看次数