动态按钮 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');