如何传递参数并从角度js中的自定义指令获取值?

时间:2015-05-27 10:40:52

标签: javascript angularjs angularjs-directive angularjs-scope

的index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example - example-example11-production</title>


  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0-rc.2/angular.min.js"></script>
  <script src="script.js"></script>  
</head>
<body ng-app="docsSimpleDirective">
  <div ng-controller="Controller">
  <div my-customer></div>
</div>
</body>
</html>

的script.js

(function(angular) {
  'use strict';
angular.module('docsSimpleDirective', [])
  .controller('Controller', ['$scope', function($scope) {
    $scope.customer = {
      name: 'Naomi',
      address: '1600 Amphitheatre'
    };
  }])
  .directive('myCustomer', function() {
    return {
      template: 'Name: {{customer.name}} Address: {{customer.address}}'
    };
  });
})(window.angular);
  

我希望将值传递给指令并基于键想要从控制器方法中检索值。

在此处传递值<div my-customer="FirstName"></div> FirstName是想要将它传递给指令并从控制器方法获取FirstName值的关键。

我怎么能实现这个?任何类似的线程?

1 个答案:

答案 0 :(得分:3)

要将值传递给自定义指令,您需要在指令中指定它。

locationManager:didExitRegion

现在你可以:

.directive('myCustomer', function() {
  return {
    scope: {
      myvariable: "="
    },
    template: 'Name: {{myvariable.name}} Address: {{myvariable.address}}'
  };
});

传递值的方法有很多种。您可以使用<!-- customer is an object from your controller --> <div my-customer myvariable="customer"></div> @=。他们都工作不同。请阅读此great SO post regarding all the types of bindings

JsFiddle Demo

请记住,&表示绑定是双向的。它是对父作用域的变量的引用。换句话说,当您更改指令中的变量时,它也将在父作用域中更改。