Onsen AngularJS - 不显示表单数据

Onsen AngularJS - not dispalying form data

我正在使用 Onsen、Monaca 和 AngularJS 编写一个跨平台应用程序。

我有一个标准的登录屏幕,用户必须在其中输入他们的用户 ID,这样我才能通过 API 呼叫让他们登录。

但是,在 THIS example from HERE 之后,我无法显示我的用户 ID。谁能看出我哪里出错了?

我看到的输出看起来完全像这样:您的用户 ID 是:{{lastName}}

包含所有代码。

index.html

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">

    <!-- Mobile web App Capable -->
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="mobile-web-app-capable" content="yes">

    <title>Management</title>  

    <!-- Tests -->
    <script type="text/javascript" src="js/app.js"></script>

    <script src="components/loader.js"></script>
    <script src="js/winstore-jscompat.js"></script>
    <link rel="stylesshet" href="components/monaca-onsenui/js/angular/angular-csp.css">
    <link rel="stylesheet" href="components/loader.css">
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/style.css">
    <script>
        var myApp = angular.module('myApp', ['onsen']);
    </script> 
</head>

<body>
    <ons-navigator var="myNavigator" page="login.html"></ons-navigator> 
</body>
</html>

login.html

<ons-page>
    <ons-toolbar>
        <div class="center">Login</div>
    </ons-toolbar>

    <div ng-controller="personController">
        <form class="login-form" style="text-align: center" name="myForm">
            <section style="padding: 8px">
                <input type="password" class="text-input--underbar" required minlength="3" maxlength="4"  placeholder="User ID" ng-model="firstName">
            </section>

            <section>
                <div style="color: #015794; text-align: right">
                    <label class="checkbox--noborder">
                        <input type="checkbox">
                            <div class="checkbox__checkmark"></div>
                            <small>Remember Me</small>
                    </label>
                </div>
            </section>

            <div ng-app="myApp" style="text-align: center; color: #889DA8">
                Your User ID is: <br><strong>{{lastName}}</strong>
            </div>

            <section style="padding: 0 8px 8px">
                <ons-button var="saveBtn" ng-disabled="myForm.$invalid" modifier="large" onclick="modal.show('modal')">Log In</ons-button>
            </section>
        </form>
    </div>
</ons-page>

app.js

angular.module("myApp", []).controller("personController", function($scope)
{
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});

从我的角度来看,问题似乎出在结构上。您似乎以错误的顺序做事,并且可能会重复做一些事情。 目前你有

<script type="text/javascript" src="js/app.js"></script>
<script src="components/loader.js"></script>
...
<script>
    var myApp = angular.module('myApp', ['onsen']);
</script>

并且您正在 app.js 中定义您的控制器。然而,似乎 angular 应该在那之后用 loader.js 加载,并且你在最后添加温泉,再次创建相同的 angular 模块。

顺序应该是先loader.js然后app.js,也就是在第一行加温泉。

index.html

<script src="components/loader.js"></script>
<script src="js/app.js"></script>

app.js

angular.module("myApp", ['onsen']).controller("personController", function($scope){
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});

DEMO