在angularJS中打开同一局部视图和控制器的多个实例

时间:2019-02-06 08:06:26

标签: angularjs angularjs-scope partial-views angular-controller singlepage

我正在使用部分视图和angularJS开发单页应用程序。 我有一种情况,我必须使用不同的数据多次打开相同的局部视图。

我试图通过添加app.directive并同时在js和html中更改控制器名称来使控制器名称动态化,然后调用Angular-Complies方法,但是问题是它为所有先前打开的选项卡更改了它。 然后,我尝试使用Jquery制作多个js文件并在局部视图中更改控制器名称,但仍然无济于事。这是我的代码。

HTML:

<div ng-app="myApp">
   <!-- this is in view1.html -->
    <div ng-controller="DashboardDesignerController">
            <div ng-repeat="widget in workspace.widgets">stuff here
            </div>
   </div>
    <!-- this is in view1.html -->
    <div ng-controller="DashboardDesignerController">
            <div ng-repeat="widget in workspace.widgets">stuff here
            </div>
   </div>

// Angular控制器位于单独的JS文件中。

   app.controller("DashboardDesignerController" , function ($scope, $http, 
   $rootScope, $compile, $injector, $timeout) {
   }

我希望每个标签都根据其数据单独运行,但是目前,当我转到第一个打开的标签时,其作用域随上一个打开的标签而改变。 有没有用angularJS内置的方法来执行此操作,或者也将赞赏一些好的方法。

1 个答案:

答案 0 :(得分:0)

实际上,问题是,我在核心JavaScript中调用了图表挖掘方法,该方法将$ scope替换为上次打开的方法。 通过使用JQuery获取作用域解决了该问题

var scope= angular.element($('.k-state-active').find('.tempDiv')[0]).scope();

,并使用此范围变量调用了角度函数。