AngularJS指令更改与指令无关的模型值

时间:2015-08-13 18:55:16

标签: javascript angularjs

我有一个验证信用卡luhn和长度的指令。作为数字的验证者,它的效果非常好。使用的算法基于jquery插件(sans jquery),它也将卡片类型返回给我。最终结果类似于

{
    luhn_valid: true,
    length_valid: true
    card_type: {
        name: 'visa'
    }
}

所以它给了我卡片类型名称。我想将其分配给不同的模型变量,以便我可以将卡类型和卡号传递给REST api以添加卡。问题是我不知道如何访问未声明与指令关联的模型。

<input type="text" name="cardNumber" ng-model="cardCtrl.form.inputs.cardNumber" 
    credit-card-validator card-type-model="cardCtrl.form.inputs.cardType">

在上面的例子中,我添加了一个额外的属性来将模型名称传递给指令。我已经将$ scope传递给了该指令,并且可以看到cardCtrl是$ scope的子节点,所以我觉得我应该可以从中获取模型,但我不确定最好的方法。

关于访问其他模型的最佳方式的想法?

1 个答案:

答案 0 :(得分:2)

在指令控制器中,通过调用$scope.$parent.'ParentControllerVariableName',您可以从指令中获取控制器范围变量的值,但这不是一个好习惯。

您可以创建工厂并在工厂方法中设置值并定义get方法。将此工厂注入您的指令并从工厂获取值。