如何在Angular中的指令模板中设置ngModel?

时间:2015-10-21 05:14:12

标签: javascript angularjs angularjs-scope angular-directive

这是jsfiddle。 HTML:

<div ng-app="app">
    <div ng-controller="ctrl">
        <div my-rd name="gender" value="male" model="gender"></div>
        <div my-rd name="gender" value="female" model="gender"></div>
        <p>Your choice is: {{gender}}</p>
    </div>
</div>

JS:

angular.module("app", [])
.directive("myRd", function(){
    return{
        restrict: "A",
        scope: {
            name: "@",
            value: "@",
            model: "="
        },
        template: "<input name='{{name}}' ng-model='model' value='{{value}}' checked type='radio' />{{value}}"
    }
})
.controller("ctrl", function($scope){

})

我创建了一个指令,可以生成带有自定义属性的自定义单选按钮。问题是我无法正确设置ng-model名称并且&#34;已检查&#34;财产也不起作用。
请多多帮助我!非常感谢!

1 个答案:

答案 0 :(得分:1)

您使用简写语法=,这意味着属性名称与您要在指令范围内绑定的值相同。

如果声明为<div my-rd foo="test">,则必须在指令中指定

model: "=foo" //It tells $compile to bind to the foo attribute.

在您的指令中,您可以访问值

//directive will know only the property inside scope:{'your_propery': value}    
//to access the value inside directive {{your_propery}}
scope.model //{{model}}

在您的控制器中,您可以访问值

$scope.test //{{test }}

More details