Javascript 将值作为参数发送到动态分配的控制器
我试图重现动态分配控制器的行为的模态视图和对话框视图,并能够将值作为参数发送 我试图模仿AngularUI代码,但没有成功:Javascript 将值作为参数发送到动态分配的控制器,javascript,angularjs,ng-controller,Javascript,Angularjs,Ng Controller,我试图重现动态分配控制器的行为的模态视图和对话框视图,并能够将值作为参数发送 我试图模仿AngularUI代码,但没有成功: var elem = document.getElementById('placeholder'); elem.setAttribute('ng-controller', 'ctrl'); var injector = angular.element(elem).injector(); var compile = injector.get('$compile'); v
var elem = document.getElementById('placeholder');
elem.setAttribute('ng-controller', 'ctrl');
var injector = angular.element(elem).injector();
var compile = injector.get('$compile');
var rootScope = injector.get('$rootScope');
var controller = injector.get('$controller');
var ctrlInstance = controller('ctrl', {$scope:rootScope, value:'hello'});
var result = compile(elem)(rootScope);
它用于在不传递值的情况下动态分配控制器。我做错了什么
不要在元件上设置控制器: 更新方法:
function setCtrl() {
var elem = document.getElementById('placeholder');
//elem.setAttribute('ng-controller', 'ctrl');
var eSpan = elem.children[0];
var eSelect = elem.children[1];
eSpan.setAttribute('ng-bind', 'name');
eSelect.setAttribute('ng-options', 'o as o for o in rows');
eSelect.setAttribute('ng-model', 'selectedValue');
var injector = angular.element(elem).injector();
var compile = injector.get('$compile');
var rootScope = injector.get('$rootScope');
var controller = injector.get('$controller');
var result = compile(elem)(rootScope);
var ctrlInstance = controller('ctrl', {$scope:rootScope, value:'hello'});
}
另外,在获取选择时,您正在执行children[1]。children[0],这是不正确的
我猜如果在元素上设置ng控制器
,angular也会尝试实例化它,但不知道从哪里获取值
参数
编辑
我让这个例子做了你想让它做的。。我想:)谢谢!只是想确定你做了我想要的。。。控制器是分配给元素还是分配给整个应用程序?好的,在模态/对话框中,只有视图(特定元素)指定了控制器。我说的对吗?控制器应用于已编译的元素(具有id占位符的元素)