使用模态ng控制器作为常规控制器
Use a modal ng-controller as a regular controller
我有一个模态视图(带angularui)使用的控制器。在某种程度上,我想将此控制器与自定义视图(而不是模态视图)一起使用。因此,除了解析变量(发送到控制器的变量)之外,一切都很好。
我这样称呼模态:
var modalInstance = $modal.open({
templateUrl: 'myModal.html',
controller: 'modalCtrl',
size: 'lg',
resolve: {
variable: function(){
return myVar;
}
}
});
如何从javascript(或html)发送变量?
以下是我如何引导我的自定义视图(custom.html):
angular.element($(document.body)[0].children[0]).attr('ng-controller','modalCtrl');
angular.bootstrap( document.body, [ 'myApp' ]);
实现这一点的一种方法是定义一个与解析名称相同的服务或值(在本例中为variable
)。然后Angular会为您找到依赖项并将其注入。
您可能不希望始终定义此服务/值。因此,您可以在模块中定义此服务/值,然后在引导应用程序时有条件地加载该模块:
if (someCondition) {
angular.module('use.me.conditionally', []).value('variables', 123);
angular.element($(document.body)[0].children[0]).attr('ng-controller','modalCtrl');
angular.bootstrap(document.body, ['myApp', 'use.me.conditionally']);
} else {
angular.bootstrap(document.body, ['myApp']);
}
编辑:
您可以使用value()
或service()
函数来声明具有许多属性的可注入对象:
var foo = { property1: 'abc', property2: 456 };
angular.module('use.me.conditionally',[])
.value('variablesAsAValue', foo)
.service('variablesAsAService', function() { return foo; });
请注意,您不需要同时使用value()
和service()
,我只是展示了这两种方法。value()
通常用于常量类型的变量,而服务通常是对象/类。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- Nodejs API控制器,用于在API之间切换
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将不在模型中的数据返回到mvc控制器
- 未激发路由的控制器属性上的观察者
- 使用模态ng控制器作为常规控制器
- 如何从AngularJS控制器访问常规Javascript函数