javascript - 动态按钮 ng-click 将变量传递给函数

标签 javascript angularjs angularjs-ng-click

我想使用指令 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/

相关文章:

javascript - 在 ng-model 上应用 parseFloat

javascript - 将函数参数传递给 $scope.$apply?

javascript - JSFiddle 不运行我的 AngularJS 代码

javascript - ng-disabled Angular js 来评估获取 $http.get 的函数

javascript - 在 Node js 中使用 AWS sdk 将整个目录树上传到 S3

javascript - 检查包含数组的数组

javascript - Twitter Bootstrap 工具提示 : flickers on mouse down

javascript - 如何获取所选值以显示下拉菜单

javascript - Angular js 绑定(bind)不起作用

angularjs - ng-view 不适用于 Microsoft Edge