Откройте несколько экземпляров одного и того же частичного вида и контроллера в 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();
и называется угловой функцией с этой переменной области видимости.