0

ボタンを押すと、テキストボックスの値をコンソールに出力したいと思います。しかし、私のテキストボックスは未定義を返します。すべてのコードが完璧に機能しているようです。以前に使用した他のコードと同じ方法で実行しましたが、現在は機能していません。

これは私のhtmlコードです:

<form class="form-horizontal">    
     <input type="text" ng-model="add" ng-model-instant><button class="btn" ng-click="order()"><i class="icon-plus"></i>Order!</button>
</form>

これは私のスクリプトです:

angular.module('MyApp', []).
config(function($routeProvider) {
    $routeProvider.  
        when('/boeken', {templateUrl:'partials/boeken.html', controller:BoekenCtrl}).
        when('/orders', {templateUrl:'partials/orders.html', controller:OrderCtrl}).
        when('/home', {templateUrl:'partials/home.html', controller:HomeCtrl}).
        otherwise({redirectTo:'/home'});
});

//BoekenCtrl

//HomeCtrl

function OrderCtrl($rootScope) {    
    $rootScope.order = function() { console.log($rootScope.add); $rootScope.add = "";     };
}

テキストボックスが定義されていないのはなぜですか?

4

1 に答える 1

0

その代わり

function OrderCtrl($rootScope) {    
$rootScope.order = function() { console.log($rootScope.add); $rootScope.add = "";     };
}

使用する:

function OrderCtrl($scope) {    
$scope.order = function() {
    console.log($scope.add);
    $scope.add = "";
 };
}

フォームは の下に存在するため、データをフェッチするためにコントローラーに使用OrderCtrlする必要があります。しかし、確かに、あなたはそれを後で保管することができます$scopeOrderCtrl$rootScope

Fiddleの例を参照してください。

于 2013-05-31T09:39:24.680 に答える