如何使用angular.bind(self,fn,args)

时间:2017-11-17 09:37:32

标签: angularjs

我是棱角分明的新手。我经历了角度api参考, 我见过名为angular.bind的函数(self,fn,args)。 我无法理解这个功能的用法。任何人都能用一个例子来解释这个功能吗?

2 个答案:

答案 0 :(得分:1)

用于功能计算。 JavaScript的一个例子:

var concat = function(input1) {
  return function(input2) {
    console.log(input1 + ", " + input2);
  };
};

var externalFunction = concat("Hello");
externalFunction("World!"); // gives: "Hello, World!"

这允许您仅使用一些参数,而不是所有参数,例如concant("Hello")而不是concant("Hello","World!")。您可以想象使用定义的变量作为参数之一,而您从用户输入填写第二个。 AnuglarJS可以使用相同的概念:



<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
</head>
<body ng-app="app">
    <div ng-controller="bindController">
        <input type="number" ng-model="num" ng-change="AddValue()" />
        Adding 5: {{Add}}
    </div>
</body>
</html>
<script>
    var app = angular.module("app", []);
    app.controller('bindController',['$scope',function($scope){
        $scope.num = 30;
        $scope.AddValue = function () {
            var addData = angular.bind(this, function (a, b) {return a + b;});
            $scope.Add = addData(5, $scope.num);
        }
        $scope.AddValue();
    }]);
</script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

<强>控制器

 app.controller('Identity`enter code here`Controller', ['$scope',
   function($scope) { 
   $scope.Name = "";
   $scope.Result = "";
  var greet = function (greeting, punctuation) {
    $scope.Result = greeting + ' ' + $scope.Name +''+ punctuation;
  };
   $scope.callBind = function () {
    var bound = angular.bind(this, greet, 'Welcome');
     bound('!!!!!');
  };
 }]);

<强> HTML

 <fieldset style="background-color:#DDE4E9;">          
    <legend>AngulerJS $scope.bind() Example</legend>           
        <div ng-controller="IdentityController">         
          <p>{{Result}}</p>
          <input ng-model="Name">    
          <button ng-click="callBind()">Call Bind</button> 
        </div>
 </fieldset>

我认为它的工作