所以我有一个模块,主要用作第三方"模块。目的是创建一些可以轻松适应其他Angular应用程序的东西。所以我到目前为止就是这样的。
其他人的申请
var myApp = angular.module( 'myApp', ['thirdPartyModule'] );
我的第三方模块:
angular.module('thirdPartyModule', [])
.controller('thirdPartyController', function($scope, getDataForThirdPartyModule)
{
getDataForThirdPartyModule.getData().then(function(data)
{
$scope.thirdPartyData = data;
console.log($scope.thirdPartyData);
});
})
.factory('getDataForThirdPartyModule', function($http)
{
return {
getData: function (callback) {
return $http.get('/path/to/sample-data.json').then(function(response)
{
return response.data;
});
}
}
});
目前,这适用于硬编码的URL路径:
$http.get('/path/to/sample-data.json')
但我想知道的是最好的方法是什么?我的想法是没有硬编码的URL路径,而是动态的并由主应用程序或模块决定。例如,我的第一个想法是这样的......
$http.get($scope.thirdpartyUrl);
但这不起作用,或者似乎是对的。那么做这样的事情的好方法是什么呢?
答案 0 :(得分:1)
您可以使用provider:
myApp.config(function(getDataForThirdPartyModuleProvider){
getDataForThirdPartyModuleProvider.setUrl('/path/to/sample-data.json');
});
然后您可以在应用中配置您的提供商:
System.out.println("STARTING VI");
ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/vi");
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectInput(ProcessBuilder.Redirect.INHERIT);
Process p = processBuilder.start();
// wait for termination.
p.waitFor();
System.out.println("Exiting VI");
检查this plnkr。