2

Ionic を使用して、新しい Phonegap アプリケーションを開始しています。Angular に依存しています。

だからここにビューがあります:

<ion-view title="'Login'" left-buttons="leftButtons">
    <ion-content has-header="true">
        <input type="text" ng-model="new_name" placeholder="Name">
        {{new_name}}
        <input type="text" ng-model="new_text" placeholder="Message..." ng-keydown="addMessage($event)">
    </ion-content>
</ion-view>

コントローラ:

.controller('LoginCtrl', function($scope) {
        $scope.new_name = "ininame";

        $scope.addMessage = function(e) {
            console.log($scope);
            if (e.keyCode != 13) return;
            console.log({name: $scope.new_name, text: $scope.new_text});
        };
    })

そして設定:

.state('eventmenu.login', {
                url: "/login",
                views: {
                    'menuContent' :{
                        templateUrl: "templates/login.html",
                        controller: "LoginCtrl"
                    }
                }
            })

そのため、上記の入力を変更すると {{new_name}} が更新されますが、コントローラーの $scope.new_name の値は「ininame」のままで、変更されることはありません。関数をトリガーすると、console.log にそのように表示されます。

次のように ng-controller = "LoginCtrl" で div を追加すると、次のようになります。

<ion-view title="'Login to Wallit'" left-buttons="leftButtons">
    <ion-content has-header="true">
        <div ng-controller="LoginCtrl">
        <div ng-repeat="msg in messages"><em>{{msg.name}}</em>: {{msg.text}}</div>
        <input type="text" ng-model="new_name" placeholder="Name">
        {{new_name}}
        <input type="text" ng-model="new_text" placeholder="Message..." ng-keydown="addMessage($event)">
        </div>
    </ion-content>
</ion-view>

それは完全に機能します。モジュールの構成でのコントローラーのバインドは、通常のコントローラーと同じように機能する必要があります。

混乱しています...助けてくれてありがとう!

4

1 に答える 1