将两个常见视图链接到AngularJs中的单个控制器?

时间:2014-07-29 13:53:00

标签: javascript php angularjs yii route-provider

我有一个使用此视图和控制器设计的模块。现在,我想将相同的视图和控制器移动到另一个模块...基本上想要将功能包含到另一个模块中。

现在,我为这个模块创建了一个新控制器,并在其中传递了“以前使用过的控制器名称”

$scope.includeViews =
        [ 
          {'title':'Info', url: appdata.baseurl +'/app/partials/profile/info.html', controller : 'infoData'}
        ];

此外,这就是我如何包含'以前使用的视图'..实际上我在这里处理wth标签来加载视图...其如下

<tab heading="{{includeViews[0].title}}">
                <div class="slide-animate-container">
                    <div class="slide-animate" ng-include="includeViews[0].url" ng-controller="infoData"></div>
                </div>
            </tab>

使用ng-include时,范围不会被复制..所以我无法获取数据

请告诉我如何处理这个,我不想编码新的,因为我正在将一个模块的相同功能复制到另一个模块中。 谢谢!

2 个答案:

答案 0 :(得分:0)

有一些叫做Directive的角度,它正是为了创建可重用的组件。它是您正在寻找的解决方案,指令可以在不同的模块中重用。检查角度指令文档

https://docs.angularjs.org/guide/directive

答案 1 :(得分:0)

我自己找到了解决方案...... 它只是将$ parent作为我视图的ng-model值的前缀,我必须包括..

<div class="control-group">
            <label  class="control-label" for="fname"><b>Name:</b></label>
            <div  class="controls">
                <input name="fname" type="text" ng-model="$parent.info.data"/><br/>

            </div>
        </div>

同样对于表单......也一样

参考链接是 https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-include