如何通过指令将数据从HTML传递到控制器?

10 浏览
0 Comments

如何通过指令将数据从HTML传递到控制器?

我通过指令从HTML传递数据\n

   

\n并在控制器中使用它\n

var app = angular.module('app', []);
app.directive("tempdir", function() {
  return {
    template: " ... ",
    scope: {
      color: "@"
    }
  };
});
app.controller('main', function($scope) {
  // 如何在控制器中使用变量color?
  console.log();
});

\n如何在控制器内使用变量color?

0
0 Comments

问题的出现原因是在指令中将数据从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);
});

0