从外部文件初始化ng-init中的数组

时间:2016-05-12 10:06:41

标签: angularjs

我有以下html文件:

<!DOCTYPE html>
<html ng-app="">    
<head>
    <script src="js_libs/angular.min.js"></script>
    <script src="somenames.js"></script> 
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body ng-init="names">
    <ul ng-repeat="name in names">
        <li>{{name}}</li>
    </ul>
</body>

somenames.js 非常简单。

        var names = ['Andrew', 'Ben', 'Chad'];

当我在浏览器中打开html列表时没有名字。我不想使用控制器。我只是想从文件初始化。 我怎么能做这件事,即从外部文件启动?

我写了一个控制器,但结果是否定的。语法没问题,逻辑正常(我猜)但浏览器中没有显示。

 <!DOCTYPE html>
 <html ng-app="">   
<head>
    <script src="js_libs/angular.min.js"></script>
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body>                        
    <div class="container" ng-controller="namesCtrl">
        <ul ng-repeat="name in names">
            <li>{{name}}</li>
        </ul>
    </div>  
    <script>
    function namesCtrl($scope){
         $scope.names = ['Andrew', 'Ben', 'Chad'];
    }
</script>
</body>

和以前一样。如何更正文件?

1 个答案:

答案 0 :(得分:0)

据我所知,你不能在不使用控制器的情况下初始化值:S,

在谈论您的文件时,您可以在“ng-app”属性中添加一个值,以便在此案例“app”中定义容器。

在控制器中,您可以创建一个模块,在这种情况下引用该容器“mainApp”,这样您就可以将控制器作为格式附加到它:        "name_of_your_variable".controller("name_of_Controller", function($scope){ //body controller });

最后在控制器内部,您可以添加所需的属性,在这种情况下是您的名称数组,然后您就可以使用表达式访问该值。检查以下代码:

<!DOCTYPE html>
 <html ng-app="app">   
<head>
    <script src="js_libs/angular.min.js"></script>
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body>
    <div class="container" ng-controller="namesCtrl">
        Array:  {{names}}
        <ul ng-repeat="name in names">
            <li>{{name}}</li>
        </ul>
    </div>  
     <script>
    var mainApp = angular.module("app", []);
    mainApp.controller("namesCtrl", function ($scope) {
        $scope.names = ['Andrew', 'Ben', 'Chad']
    });
    </script>
</body>

希望这可以帮助你:)