动态按钮 ng-click 将变量传递给函数
Dynamic button ng-click pass variable to function
我想使用指令 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 scope variable
。但是没有名为 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
您似乎多了一个单引号。试试这个:
var $element = $('<button ng-click="open(name)" + "Name:" + </button>').appendTo('#user-list');
我想使用指令 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 scope variable
。但是没有名为 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
您似乎多了一个单引号。试试这个:
var $element = $('<button ng-click="open(name)" + "Name:" + </button>').appendTo('#user-list');