在自定义指令中绑定数据-AngularJS

盖伊B7

我有一个自定义指令,其目的是显示一个小部件并将其绑定到变量。每个变量具有不同的数据类型,因此将根据数据类型显示不同的窗口小部件。

我的问题是我可以传递变量的数据,但无法设法将小部件绑定到它。

为了简化问题,我的小部件只是一个简单的文本输入。当我尝试$ compile小部件时,Angular使用变量的值而不是绑定到它。

HTML:

<body ng-app="app" ng-controller="myCtrl">
  <input type="text" ng-model="resource.name"></div>
  <div custom-widget widget-type="widget" bind-to="resource"></div>
</body>

Javascript:

angular.module('app', [])
  .directive('customWidget', function($compile) {
    return {
      replace: true,
      template: '<div></div>',
      controller: function($scope) {

      },
      scope: {
        bindTo: "=bindTo",
        widgetType: "=widgetType"
      },
      link: function(scope, iElem, iAttrs) {
        var html = '<div>' + scope.widgetType.label + ':<input ng-bind="' + scope.bindTo[scope.widgetType.id] + '" /></div>';
        iElem.replaceWith($compile(html)(scope));
      }
    };
  })
  .controller('myCtrl', function($scope) {
    $scope.widget = {
      id: 'name',
      label: 'Text input',
      type: 'text'
    };
    $scope.resource = {
      name: 'John'
    };
  });

Plunker演示:http ://plnkr.co/edit/qhUdNhjSN7NlP4xRVcEA?p=preview

我对AngularJS还是很陌生,我的方法可能不是最好的,所以任何不同的想法当然都会受到赞赏!

皮划艇队

由于您正在使用隔离作用域,因此一个问题是resource在父作用域上,并且在指令中不可见。而且我想你在寻找ng-model而不是在寻找ng-bind

另外,由于您想绑定到namein resource,因此我们需要以某种方式进行绑定。

因此,这是您的模板html的一种方法(请注意为$parent解决范围问题而添加的内容.name(如果愿意,可以使用变量以编程方式添加,或者将其指定为属性的一部分))。

var html = '<div>' + scope.widgetType.label + ':<input ng-model="' + '$parent.' + iAttrs.bindTo +'.name'+ '" /></div>';

更新的插头

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用指令绑定angularjs中的自定义事件

来自分类Dev

AngularJS:自定义指令中的双向数据绑定不起作用

来自分类Dev

AngularJS自定义指令双向绑定

来自分类Dev

Angularjs:在模板中绑定时,为什么自定义指令中的参数未定义?

来自分类Dev

AngularJS 自定义生成指令动态属性绑定

来自分类Dev

双向绑定隔离范围在自定义指令中不起作用-AngularJS

来自分类Dev

如何在angularjs指令中绑定到自定义事件?

来自分类Dev

AngularJS自定义指令

来自分类Dev

AngularJS自定义指令传递对象数据

来自分类Dev

AngularJS自定义指令访问范围数据

来自分类Dev

将数据传递到AngularJS中的自定义指令

来自分类Dev

我可以在自定义AngularJS指令中访问已编译的节点数据吗?

来自分类Dev

在 AngularJS 中的 ng-repeat 指令中使用自定义过滤器订购数据

来自分类Dev

angularjs:在ng-repeat中使用“ track by”后,自定义直接绑定数据不再更新

来自分类Dev

在angularJS中绑定数据

来自分类Dev

AngularJS-自定义指令中的点击访问

来自分类Dev

自定义指令模板中的AngularJS控制变量

来自分类Dev

在AngularJS自定义验证指令中调用异步服务

来自分类Dev

AngularJS在自定义指令中包装ui选择

来自分类Dev

在Angularjs自定义指令中获取属性的值

来自分类Dev

AngularJS中的自定义指令和路由

来自分类Dev

AngularJS指令中自定义HTML标记的后果

来自分类Dev

AngularJS-在自定义指令中更新变量

来自分类Dev

在Angularjs自定义指令中获取属性的值

来自分类Dev

angularjs自定义指令值更改

来自分类Dev

选择的AngularJS自定义指令

来自分类Dev

angularjs自定义指令重复属性

来自分类Dev

多个自定义指令angularjs

来自分类Dev

AngularJS:自定义指令内的ngView

Related 相关文章

  1. 1

    使用指令绑定angularjs中的自定义事件

  2. 2

    AngularJS:自定义指令中的双向数据绑定不起作用

  3. 3

    AngularJS自定义指令双向绑定

  4. 4

    Angularjs:在模板中绑定时,为什么自定义指令中的参数未定义?

  5. 5

    AngularJS 自定义生成指令动态属性绑定

  6. 6

    双向绑定隔离范围在自定义指令中不起作用-AngularJS

  7. 7

    如何在angularjs指令中绑定到自定义事件?

  8. 8

    AngularJS自定义指令

  9. 9

    AngularJS自定义指令传递对象数据

  10. 10

    AngularJS自定义指令访问范围数据

  11. 11

    将数据传递到AngularJS中的自定义指令

  12. 12

    我可以在自定义AngularJS指令中访问已编译的节点数据吗?

  13. 13

    在 AngularJS 中的 ng-repeat 指令中使用自定义过滤器订购数据

  14. 14

    angularjs:在ng-repeat中使用“ track by”后,自定义直接绑定数据不再更新

  15. 15

    在angularJS中绑定数据

  16. 16

    AngularJS-自定义指令中的点击访问

  17. 17

    自定义指令模板中的AngularJS控制变量

  18. 18

    在AngularJS自定义验证指令中调用异步服务

  19. 19

    AngularJS在自定义指令中包装ui选择

  20. 20

    在Angularjs自定义指令中获取属性的值

  21. 21

    AngularJS中的自定义指令和路由

  22. 22

    AngularJS指令中自定义HTML标记的后果

  23. 23

    AngularJS-在自定义指令中更新变量

  24. 24

    在Angularjs自定义指令中获取属性的值

  25. 25

    angularjs自定义指令值更改

  26. 26

    选择的AngularJS自定义指令

  27. 27

    angularjs自定义指令重复属性

  28. 28

    多个自定义指令angularjs

  29. 29

    AngularJS:自定义指令内的ngView

热门标签

归档