簡體   English   中英

將數據從指令傳遞到控制器

[英]pass data from directive to controller

如何將控制器內的變量綁定到angular中指令內的輸入標簽的ng模型?

這是我無法正常工作的代碼:內部指令html:

<input kendo-auto-complete k-data-source="data" ng-model="myValue"  style="width: 100%;" />

我的指令腳本:

 app.directive('myAutocomplete', function () {
    return {
        restrict: 'E',
        scope: {
            data: '=info',
           }
        templateUrl: '/directive.html',
        transclude: true,
        link: link,
        controller:function() {
            var a = 4;
        }
    };

在其他地方調用指令:

    <my-autocomplete info="vm.people"  ng-hide="dialogIsHidden"></my-autocomplete>{{myValue}}

您所顯示的代碼中有錯誤,例如,在scope屬性之后缺少逗號,並且您似乎在引用一個尚未編寫的函數link ,或者正在向我們隱藏它。

看起來您正在嘗試使用隔離作用域在控制器和指令之間共享數據,而您在指令和控制器之間進行了雙向數據綁定。 我認為這可能是可行的方法,但是由於上述一些錯誤,您尚未完全正確地實現它。

這是您想要達到的目標的簡化演示。

DEMO

app.js

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

app.controller('MainCtrl', function($scope) {

  var vm = this;

  vm.someData = {
    value: 'bar'
  };

});


app.directive('myAutocomplete', [function(){

    return {

        restrict: 'E',

        scope: {
            someData: '=',
        },

        templateUrl: 'directive.html',


    };

}]);

的index.html

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.17/angular.js" data-semver="1.3.17"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl as vm">
    <pre>{{vm.someData}}</pre>
     <my-autocomplete some-data='vm.someData'></my-autocomplete>
  </body>

</html>

directive.html

<input 
  type="text"
  ng-model="someData.value"  
/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM