我正在使用局部视图和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方法,或者一些好的方法也会受到赞赏。
实际上问题是,我在核心JavaScript中调用了图表向下钻取方法,该方法在上次打开时替换了$ scope。通过使用JQuery获取范围解决了该问题
var scope= angular.element($('.k-state-active').find('.tempDiv')[0]).scope();
并使用此范围变量调用角度函数。