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

问题描述 投票:0回答:1

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

我尝试通过在js和html中添加app.directive和更改控制器名称来使控制器名称动态化,然后调用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方法,或者一些好的方法也会受到赞赏。

angularjs angularjs-scope partial-views angular-controller singlepage
1个回答
0
投票

实际上问题是,我在核心JavaScript中调用了图表向下钻取方法,该方法在上次打开时替换了$ scope。通过使用JQuery获取范围解决了该问题

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

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

© www.soinside.com 2019 - 2024. All rights reserved.