Откройте несколько экземпляров одного и того же частичного вида и контроллера в angularJS - PullRequest
0 голосов
/ 06 февраля 2019

Я разрабатываю одностраничное приложение, используя частичные представления и 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 Ответ

0 голосов
/ 21 февраля 2019

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

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

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

...