如何在angularjs中创建动态提供程序

时间:2015-05-23 10:21:57

标签: javascript angularjs

不在页面

中显示

$scope.sayHi=function(provider) {
		$scope.Name=provider.Name
		console.log(provider)
	}
	
	$http.get("data.php")
    .success(function(response) {
    	response.records.forEach(function($scope) {
    		app.provider($scope.City , function () {
    			return {
    				$get:function() {
    					return {
    						Name:$scope.Name
    					}
    				}
    			}
    		})
    	})
    });
	})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.11/angular.min.js">
  <input ng-model="city">
<p ng-click='sayHi(city)'>Click </p>
<p>This is name: {{name}}</p

> Blockquote**strong text**

</script>

我可以创建一个提供者并访问它使用页面

中的ng-model

1 个答案:

答案 0 :(得分:0)

您可以通过注入向控制器添加已定义的服务/提供程序。

在您的模块中定义它:

app.provider("myProvider", ['$http', function($http) {
   getXyz: function(callback) {
      $http.get("data.php").success( callback );
   }
}]);

顺便说一下用$符号来启动你自己函数的名称并不是一个好主意,因为angularfor内部变量使用它。名称可能会发生碰撞。

然后在您的控制器中使用它,无需在您的视图中访问它。

app.controller( "myController", ['$scope', 'myProvider', function($scope, myProvider){
   $scope.sayHello = function(){     
      myProvider.getXyz(function(response) {
         $scope. ...
      });
   }
}