动态按钮ng-单击传递变量以起作用

时间:2015-12-26 18:27:25

标签: 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)时,我可以看到&#39; 123&#39; 的提醒。但是像var name这样的简单变量将是undefined。你能告诉我我做错了什么吗?

2 个答案:

答案 0 :(得分:3)

如果您使用ng-click="open(name)",则name应该像角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

答案 1 :(得分:0)

看起来你有一个额外的单引号。试试这个:

try:
    xml = urllib.urlopen(url).read()
except socket.timeout as e:
    print 'timeout reading url: %s' % e
    continue
print 'url read/parsing'
...