如何制定指令修改另一个指令的内容?

时间:2013-06-08 20:58:39

标签: javascript angularjs

我有一组需要在块中修改的dom元素。在以下示例中,"块"指令将在其中添加编辑链接。

<div block>
     <div editable="text1">this is editable</div>
     <div editable="text2">this is another editable</div>
</div>

我希望编辑链接填充另一个指令(称为&#34; panel&#34;),每个可编辑元素的一个输入字段位于块内。当然输入字段必须绑定到上面的dom元素。这些块可能是dinamycally放置在ng-switch和/或ng-repeat内部,所以我需要考虑不同的范围级别。

具体问题是我如何制定指令修改另一个指令的内容?我只找到了关于如何在连接到同一元素时使两个指令进行通信的示例。

目前我试图在&#34; block&#34;的链接功能中使用jQuery。获取可编辑元素列表并在&#34;面板中显示的指令&#34;使用控制器范围属性,但我无法使其适用于ng-repeat / ng-switch。

如果可能的话,非常感谢有关如何在AngularJS中解决此问题的一般建议!!

谢谢

2 个答案:

答案 0 :(得分:0)

之前我有同样的问题并且有Fiddle example,用于从指令调用Directive。也许它会帮助你。

HTML

<div ng-controller="MyCtrl">
  <div directive-foo></div>
</div>

<强> JS

var app = angular.module('myApp',[]);

app.directive('directiveFoo', function() {
return {
    template: '<div directive-bar="123">bar</div>',
    replace: true,
    controller: function() {
        console.log('in foo ctrl');
        this.isFooAlive = function() {
            return 'Foo is alive and well';
        }
    }
  }
});
app.directive('directiveBar', function() {
  return {
    controller: function() {
        console.log('in bar ctrl');
    },
    require: 'directiveFoo',
    link: function(scope, element, attrs, fooCtrl) {
        console.log(fooCtrl.isFooAlive());
    }
  }
});

function MyCtrl($scope) {
}

答案 1 :(得分:0)

我正在使用一个控制器作用域数组来保存面板中正在编辑的字段的数据,问题是我试图使用scope.myarray = []清空数组,而{I}正在创建一个新的数组。儿童范围。