[英]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
,或者正在向我們隱藏它。
看起來您正在嘗試使用隔離作用域在控制器和指令之間共享數據,而您在指令和控制器之間進行了雙向數據綁定。 我認為這可能是可行的方法,但是由於上述一些錯誤,您尚未完全正確地實現它。
這是您想要達到的目標的簡化演示。
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.