是否可以在控制器中定义ng-include,ng-init,ng-controller

时间:2015-08-07 13:29:04

标签: javascript angularjs

<div
    class="row caption-view"
    ng-include="'app/views/inventory/grid-view/part.html'"
    module="subscriber"
    alias="il"
    ng-controller="GridController as il"
    ng-init="il.setGridParams(cse.gridParams.findCation);
    cse.findCaptionGrid = il">
</div>

我有控制器('cse'),在它的视图中我有控制器的ng-include。当一切都加载后,我可以使用'cse.findCaptionGrid'来操纵'GridController'控制器。

问题: 'cse'控制器加载,我需要用'GridController'(又名'cse.findCaptionGrid')控制器开始操作。但我不能使用'cse.findCaptionGrid'直到ng-include执行。我试图使用$ timeout,但它没有帮助。我将超时设置为5000,然后就可以了。

问题:是否可以在控制器中定义'ng-init =“il.setGridParams(cse.gridParams.findCation); cse.findCaptionGrid = il”'部分,以便我可以开始使用它?在html中我只是显示应该显示的位置?

1 个答案:

答案 0 :(得分:0)

创建一个指令:

<div my-directive 
  class="row caption-view"
  module="subscriber"
  alias="il"/>


angular.module("yourApp").directive('myDirective', [function(){
   return {
      controller: "GridController as il",
      templateUrl: "app/views/inventory/grid-view/part.html"
   };

}]);

并在你的控制器内:

this.setGridParams(cse.gridParams.findCation);
cse.findCaptionGrid = this;