我想使用指令 ng-click
将变量传递给函数,这是我的代码:
var name = "John Doe";
var $element = $('<button ng-click="open(name)" + "Name:" + '</button>').appendTo('#user-list');
$compile($element)($scope);
$scope.open = function(name) {
alert(name); //Will display 'undefined'
}
附加工作正常,当我插入 open(123)
时,我可以看到 '123' 警报。但是像var name
这样的简单变量将是undefined
。你能告诉我我做错了什么吗?
最佳答案
如果您使用像 ng-click="open(name)"
那么 name
应该像 Angular 范围变量
。但是没有名为 name
的作用域变量,但您有一个名为 name
的变量,这就是为什么您收到 undefined
警报,并且它不在作用域内(不是范围变量)。
如果您需要提醒 "John Doe";
(即 var name = "John Doe";
),那么您必须像作用域变量一样修改它,如下所示,
$scope.name = "John Doe";
var $element = $('<button ng-click="open(name)">Name:</button>').appendTo('#ex1');
$compile($element)($scope);
$scope.open = function(name) {
alert(name); //Will display 'undefined'
}
这是一个DEMO
关于javascript - 动态按钮 ng-click 将变量传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34474027/