大佬教程收集整理的这篇文章主要介绍了AngularJS – 按字符串获取控制器功能,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$scope.map = { 'key1': { controller: Ctrl1,templateUrl: 'tmpl1.html' },'key12': { controller: Ctrl2,templateUrl: 'tmpl1.html' } } ... <div ng-include src="map[key].templateUrl" ng-controller="map[key].controller"></div>
但是,我想丢弃这个地图,而是通过字符串生成templateUrl和controller.以下命令返回控制器对象,但我需要返回函数.
var ctrlObj = angular.module('modulename').controller('ControllerName')
编辑1
澄清:
基本上我会在一个页面上设置“子控制器”,以便它可以是常规配置.主控制器具有所有子控制器将共享的信息:FooCtrl将是’主’控制器,而FooBarCtrl,FooBarSubCtrl将是子控制器.我的目标是创建一个将“Bar”解析为“FooBarCtrl”的函数,并从中获取相应的控制器函数.
>修改ngInclude指令,使其获取src表达式,解析它以获取控制器名称(模板Foo.html =>控制器FooCtrl)并在元素上设置控制器,就像在NgView(https://github.com/angular/angular.js/blob/master/src/ng/directive/ngView.js#L149)中完成一样:
controller = $controller(current.controller,{$scope: lastScopE}); element.contents().data('$ngControllerController',controller);
>创建新指令,例如“ajpaz-controller”监视src表达式并以与第1点相同的方式将控制器链接到元素.显而易见的优点是可以在不修改原始ng-include的情况下完成.它会像这样工作
<div ng-include src="templateUrl" ajpaz-controller>
因此,您只需将当前的templateUrl保留在父控制器中.希望有意义;)
以上是大佬教程为你收集整理的AngularJS – 按字符串获取控制器功能全部内容,希望文章能够帮你解决AngularJS – 按字符串获取控制器功能所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。