将ngModel绑定到具有隔离范围的AngularJS指令

罗德尼

我正在尝试构建一个Angular指令,该指令呈现单选输入和关联的标签。该指令的HTML如下所示:

<d-radio name="gender" value="male" label="I'm a male"></d-radio>
<d-radio name="gender" value="female" label="I'm a female"></d-radio>

我希望它能呈现以下效果:

<input type="radio" name="gender" id="male" value="male" ng-model="gender"><label for="male">I'm a male</label>
<input type="radio" name="gender" id="female" value="female" ng-model="gender"><label for="female">I'm a female</label>

这是JS代码:

app.directive('dRadio', function() {
    return {
        restrict: 'E',
        scope: true,
        template: '<input type="radio" id="{{value}}" name="{{name}}" value="{{value}}"><label for="{{value}}">{{label}}</label>',
        link: function(scope, element, attrs) {
            scope.name = attrs.name;
            scope.value = attrs.value;
            scope.label = attrs.label;
        }
    };
});

我的指令中唯一缺少的是ng-model部分。由于每个指令都会创建一个隔离的作用域,因此我不确定如何将模型绑定到它。

这里有一个类似的堆栈溢出问题:隔离指令范围,但保留对ngModel的绑定

我尝试了此解决方案,但无法正常工作。有任何想法吗?谢谢!

阿凡的雨篷

如果要进行双向绑定,则需要model: '='在范围内添加一个这样一来,您就可以在自己的范围内拥有一个模型变量,该变量将与您在html中指示的变量绑定在一起

app.directive('dRadio', function() {
    return {
        restrict: 'E',
        scope: { model: '=' },
        template: '<input type="radio" ng-model="{{model}}" id="{{value}}" name="{{name}}" value="{{value}}">    <label for="{{value}}">{{label}}</label>',
        link: function(scope, element, attrs) {
            scope.name = attrs.name;
            scope.value = attrs.value;
            scope.label = attrs.label;
        }
    };
});

并在您的html中

<d-radio name="gender" value="male" label="I'm a male" model="gender"></d-radio>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angularjs 绑定到具有隔离范围的控制器

来自分类Dev

具有隔离范围的Angularjs TreeView指令

来自分类Dev

AngularJS:父范围未在指令(具有隔离范围)中以两种方式绑定更新

来自分类Dev

AngularJS:绑定到透明指令而不隔离范围

来自分类Dev

具有隔离范围的单元测试AngularJS指令-如何获取对输出的绑定?

来自分类Dev

编译动态HTML并从JSON响应中绑定变量-具有隔离范围的指令-AngularJS

来自分类Dev

具有隔离范围的单元测试AngularJS指令-如何获取对输出的绑定?

来自分类Dev

具有隔离范围的表单输入指令的双向绑定

来自分类Dev

将回调绑定到指令而没有隔离范围

来自分类Dev

AngularJS将变量传递给具有继承(非隔离)范围的指令

来自分类Dev

具有隔离范围的AngularJS指令-默认属性值

来自分类Dev

具有隔离范围的Angularjs指令需要澄清

来自分类Dev

AngularJS:具有ng-repeat和隔离范围的指令

来自分类Dev

具有隔离范围的AngularJS指令-默认属性值

来自分类Dev

AngularJS指令-隔离范围的特殊绑定字符

来自分类Dev

隔离范围的angularJS指令,属性绑定无效

来自分类Dev

AngularJS指令-隔离范围的特殊绑定字符

来自分类Dev

将参数传递给具有隔离范围的嵌套指令

来自分类Dev

具有双向绑定的隔离范围指令不能反映控制器范围的更改

来自分类Dev

具有指令和隔离范围的controllerA

来自分类Dev

具有隔离范围版本的指令冲突

来自分类Dev

指令中具有隔离范围的数据

来自分类Dev

angularjs指令隔离范围

来自分类Dev

AngularJS隔离范围指令

来自分类Dev

使用angularjs中的可选&符号绑定来隔离范围指令?

来自分类Dev

AngularJS-指令双向绑定隔离范围问题

来自分类Dev

如何将函数处理程序从控制器传递到AngularJs的指令隔离范围中?

来自分类Dev

AngularJS:将函数传递到指令的隔离范围以在其控制器中调用?

来自分类Dev

如何将函数处理程序从控制器传递到AngularJs的指令隔离范围中?

Related 相关文章

  1. 1

    angularjs 绑定到具有隔离范围的控制器

  2. 2

    具有隔离范围的Angularjs TreeView指令

  3. 3

    AngularJS:父范围未在指令(具有隔离范围)中以两种方式绑定更新

  4. 4

    AngularJS:绑定到透明指令而不隔离范围

  5. 5

    具有隔离范围的单元测试AngularJS指令-如何获取对输出的绑定?

  6. 6

    编译动态HTML并从JSON响应中绑定变量-具有隔离范围的指令-AngularJS

  7. 7

    具有隔离范围的单元测试AngularJS指令-如何获取对输出的绑定?

  8. 8

    具有隔离范围的表单输入指令的双向绑定

  9. 9

    将回调绑定到指令而没有隔离范围

  10. 10

    AngularJS将变量传递给具有继承(非隔离)范围的指令

  11. 11

    具有隔离范围的AngularJS指令-默认属性值

  12. 12

    具有隔离范围的Angularjs指令需要澄清

  13. 13

    AngularJS:具有ng-repeat和隔离范围的指令

  14. 14

    具有隔离范围的AngularJS指令-默认属性值

  15. 15

    AngularJS指令-隔离范围的特殊绑定字符

  16. 16

    隔离范围的angularJS指令,属性绑定无效

  17. 17

    AngularJS指令-隔离范围的特殊绑定字符

  18. 18

    将参数传递给具有隔离范围的嵌套指令

  19. 19

    具有双向绑定的隔离范围指令不能反映控制器范围的更改

  20. 20

    具有指令和隔离范围的controllerA

  21. 21

    具有隔离范围版本的指令冲突

  22. 22

    指令中具有隔离范围的数据

  23. 23

    angularjs指令隔离范围

  24. 24

    AngularJS隔离范围指令

  25. 25

    使用angularjs中的可选&符号绑定来隔离范围指令?

  26. 26

    AngularJS-指令双向绑定隔离范围问题

  27. 27

    如何将函数处理程序从控制器传递到AngularJs的指令隔离范围中?

  28. 28

    AngularJS:将函数传递到指令的隔离范围以在其控制器中调用?

  29. 29

    如何将函数处理程序从控制器传递到AngularJs的指令隔离范围中?

热门标签

归档