AngularJS:从 Controller 访问指令数据

标签 angularjs angularjs-directive angularjs-scope

假设我有一个如下所示的 AngularJS 指令:

app.directive('psDIR', [
    function() {
        return {
            template: "<div style='padding: 5px; border: 1px solid red; margin-bottom: 10px;'><p>This is a direcive:</p> <textarea rows='5' cols='50' ng-model='md'></textarea></div>",
            restrict: 'AEC',
            scope: {}
        }
    }
]);

我在单个页面上多次使用此指令。如何在我的 MainCtrl 中获取 ng-model="md" 的每个指令实例/范围的值(即我想将此值保存在 添加()) :

app.controller('MainCtrl', ['$scope',
    function($scope) {
        console.log("init");
        $scope.add = function() {
            console.log($scope);
        }
    }
]);

Plunker 演示:http://embed.plnkr.co/Q5bw6CBxPYeNe7q6vPsk/preview

非常感谢任何建议。

最佳答案

由于您正在创建独立范围,否则您也无法从父范围访问子范围。

将模型作为参数从父类传递的出路

<div class="psDIR" model='field2'></div> <div class="psDIR" model='field1'></div>

然后在指令中用属性绑定(bind)更新它们。查看更新 plunkr

http://plnkr.co/edit/GKZHSDe5J0eCzqlgaf4g?p=preview

关于AngularJS:从 Controller 访问指令数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22303931/

相关文章:

javascript - 使用 RequireJS 加载 AngularJS 时间歇性 "Looking up elements via selectors is not supported by jqLite!"

javascript - 如何在 Angular 数据中显示或任何原始 html?

javascript - 使用 AngularJS 和 ng-storage 进行 session 存储

javascript - angularjs如何为函数设置观察者?

angularjs - 如何在创建过程中操作更改 ngRepeat 数据?

javascript - 仅当电子邮件有效时才允许用户单击按钮

javascript - 如何将 $scope 传递给 angular.js 中的服务?

javascript - Angular ng-repeat 错误

javascript - 如何制作一个包含 ng-repeat 中使用的 div 的指令?

javascript - 在 AngularJS 中从父 Controller 调用指令的方法