繁体   English   中英

我将ID传递给AngularJS时单击不起作用

[英]AngularJS on-click not working when i'm passing it an ID

我收到以下错误

Error: [$parse:syntax] Syntax Error: Token 'edition.multiverse_id' is unexpected, expecting [:] at column 17 of the expression [AddCardToList({{edition.multiverse_id}})] starting at [edition.multiverse_id}})].

http://errors.angularjs.org/1.2.22/ $ parse / syntax?p0 = edition.multiverse_id&p1 = is%20unexpected%2C%20expecting%20%5B%3A%5D&p2 = 17&p3 = AddCardToList(%7B%7Bedition。 multiverse_id%7D%7D)&p4 = edition.multiverse_id%7D%7D)

与以下HTML

 <button type="button" ng-if="$index == 0" class="btn btn-default btn-xs" ng-href='#' ng-click="AddCardToList({{edition.multiverse_id}})">{{edition.multiverse_id}}</button>

按钮很好地包裹在div元素内的转发器中,该元素具有以下内容

<li ng-repeat="edition in card.editions" >

我不确定我在做什么错吗?

我试图让我的按钮成为点击事件的以下角度代码如下

 $scope.AddCardToList = function (multiverse_id) {
        $http.get("https://api.deckbrew.com/mtg/cards?multiverseid=" + multiverse_id).then(onCardListAddComplete, onError);
    };

任何帮助将非常感激。 彻底解释为什么这样做不起作用将帮助我成为更好的AngularJS程序员。 非常感谢。

不要在ng-click内的任何地方使用括号

<button type="button" ng-if="$index == 0" class="btn btn-default btn-xs" ng-href='#' ng-click="AddCardToList(edition.multiverse_id)">{{edition.multiverse_id}}</button>

花括号用于将范围变量或表达式插入需要文本的区域。 ng-click指令将其内容评估为当前作用域上的一个角度表达式 ,通常类似于javascript表达式,有关信息,请参见链接。

因此,如果您有一些需要字符串的html(例如class属性),则可以使用双括号,但是如果您使用的是ng-class的指令,则期望使用表达式,则不应:

<span class="{{className}}">This will set the css class to `$scope.className`</span>
<span ng-class="{ className: true }">This will do the same thing</span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM