将静态信息从html传递到AngularJS应用程序

将静态信息从html传递到AngularJS应用程序,angularjs,Angularjs,我想将一些静态配置数据从我的服务器(.NET,PHP)传递到我的Angular应用程序。我不想为此调用web服务 在这个问题中,会生成一个javascript块,但我不希望这样。 最好的方法是什么 我正在考虑使用ng init指令来实现这一点: <div data-ng-app="MyApp" data-ng-init="foo='bar'"> 还是有更好的办法 我建议在angular中使用。这是我在一个项目中使用的一个例子(@Url.Content部分是c#,但我想你会明白

我想将一些静态配置数据从我的服务器(.NET,PHP)传递到我的Angular应用程序。我不想为此调用web服务

在这个问题中,会生成一个javascript块,但我不希望这样。

最好的方法是什么

我正在考虑使用ng init指令来实现这一点:

<div data-ng-app="MyApp" data-ng-init="foo='bar'">


还是有更好的办法

我建议在angular中使用。这是我在一个项目中使用的一个例子(@Url.Content部分是c#,但我想你会明白的)


通常,静态信息是可配置的,并且与某些服务相关。如果是这样,我将创建一个提供者(它只是一个专门的服务)并在您的config函数中配置它

创建提供商

myApp.provider('tooltip', function () {
    var version;
    var author;

    this.setVersion= function(value) {
        version = value;
    };
    this.setAuthor = function(value) {
        author = value;
    };

    this.$get = function (/* injectibles go here */) {
        return {
             version: version,
             author: author,
             etc...
        };
    };
}))

配置提供程序

myApp.provider('tooltip', function () {
    var version;
    var author;

    this.setVersion= function(value) {
        version = value;
    };
    this.setAuthor = function(value) {
        author = value;
    };

    this.$get = function (/* injectibles go here */) {
        return {
             version: version,
             author: author,
             etc...
        };
    };
在配置函数中插入提供程序时,请确保附加“提供程序”:

myApp.config(function(tooltipProvider) {

     tooltipProvider.setVersion('1.0');
     tooltipProvider.setAuthor('John Smith');

     // more configuration of static data
});
使用提供程序

myApp.provider('tooltip', function () {
    var version;
    var author;

    this.setVersion= function(value) {
        version = value;
    };
    this.setAuthor = function(value) {
        author = value;
    };

    this.$get = function (/* injectibles go here */) {
        return {
             version: version,
             author: author,
             etc...
        };
    };
在需要的地方注入提供者,并利用静态数据。这里,我们将静态数据绑定到范围,以便在视图中显示它

 // JS
 app.controller('ctrl', function($scope, tooltip) {
      $scope.version = tooltip.version;
      $scope.author = tooltip.author;
 });

 // HTML
 <div ng-controller='ctrl'>
      Tooltip Plugin: <br />
      Version: {{ version }} <br />
      Author: {{ author }} <br />
 </div>
//JS
app.controller('ctrl',函数($scope,tooltip){
$scope.version=tooltip.version;
$scope.author=tooltip.author;
});
//HTML
工具提示插件:
版本:{{Version}}
作者:{{Author}}

如果我需要的这个变量是一个包含对象的数组,该怎么办?你还会这样做吗?是的,我可能会用这个对象作为值,然后你可以通过名称访问这个属性