Откройте несколько экземпляров одного и того же частичного вида и контроллера в angularJS

Я разрабатываю одностраничное приложение, используя частичные представления и angularJS. У меня есть сценарий, в котором мне приходится открывать одно и то же частичное представление несколько раз с разными данными.

Я попытался сделать имя контроллера динамическим, добавив app.directive и изменив имя контроллера в js и html, а затем вызвал метод Angular-Complies, но проблема в том, что он меняет его для всех предыдущих открытых вкладок. Затем я попытался создать несколько js-файлов и изменить имя контроллера при частичном просмотре с помощью Jquery, но все равно это не помогает. Вот мой код

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>

// Угловой контроллер находится в отдельном файле JS.

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

Я рассчитываю вести каждую вкладку отдельно в соответствии с ее данными, но в настоящее время, когда я перехожу к первой открытой вкладке, ее область изменяется с последней открытой вкладкой. Есть ли встроенный способ angularJS для этого, или какой-то хороший подход также будет оценен.

1 ответ

Решение

На самом деле проблема была в том, что я вызывал метод детализации диаграммы в базовом JavaScript, который заменял $scope на последний открытый. Решил проблему, получив область с JQuery

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

и называется угловой функцией с этой переменной области видимости.

Другие вопросы по тегам