Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将值作为参数发送到动态分配的控制器_Javascript_Angularjs_Ng Controller - Fatal编程技术网

Javascript 将值作为参数发送到动态分配的控制器

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

我试图重现动态分配控制器的行为的模态视图和对话框视图,并能够将值作为参数发送

我试图模仿AngularUI代码,但没有成功:

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占位符的元素)