为什么我的指令中的值没有传递给函数?

时间:2016-03-17 02:16:36

标签: javascript angularjs

这是我的指示:

function OrderCloudRepeatOrderDirective() {
    return {
        restrict: 'E',
        templateUrl: 'orderHistory/templates/repeatOrder.tpl.html',
        controller: 'RepeatOrderCtrl',
        controllerAs: 'repeat',
        scope: {
            orderid: '=',
            includeBilling: '@',
            includeShipping: '@'
        }
    }

}

以下是我的指示视图:

<div class="btn btn-success" ng-click="repeat.reorder(orderid, includeBilling, includeShipping)" >Reorder</div>

这里实际上是HTML:

<ordercloud-repeat-order orderid="order.ID" includeBilling="true" includeShipping="true"></ordercloud-repeat-order>

然后我只是将一个函数绑定到执行逻辑的ng-click指令。我意识到&#39; @&#39;价值观以字符串形式回归并为此而适应。 orderID值很好但是当我单步执行我的函数时,我看到其他两个值是未定义的。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

通过命名约定(后续单词的大写)当用作元素的HTML属性时,Angular会在参数名称中添加一个破折号。

  • includeBilling用作include-billing="true"
  • includeShipping用作include-shipping="true"

请注意,您将orderid范围变量定义为完全小写,这就是为什么这个变量按原样运行。