如何通过指令将数据从HTML传递到控制器?
问题的出现原因是在指令中将数据从HTML传递到控制器时,需要使用双向绑定。解决方法是在定义指令的参数时,使用=
而不是@
。另外,在指令中的color
参数中,不应该硬编码为red
,而应该使用控制器变量。
以下是解决方法的示例代码:
<div ng-app="app" ng-controller="main"> <tempdir color="selectedColor"></tempdir> </div> var app = angular.module('app', []); app.directive("tempdir", function() { return { template: "<div id={{color}}> ... </div>", scope: { color: "=" } }; }); app.controller('main', function($scope) { $scope.selectedColor = 'red'; console.log($scope.selectedColor); });