2013-05-31 3 views
0

Когда я нажимаю свою кнопку, я хочу напечатать значение моего текстового поля в консоли. Но мое текстовое поле возвращает неопределенное. Кажется, что весь код работает отлично, я сделал это так же, как и какой-то другой код, который я использовал раньше, но он не работает сейчас.Значение текстового поля AngularJS не определено

Это мой 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 = "";  }; 
} 

Почему это, что мое текстовое поле не определено?

+0

пожалуйста, показать весь код. У вас проблемы с контроллером. И почему вы используете '$ rootScope'? –

+0

Добавил больше моего кода. BoekenCtrl и HomeCtrl работают нормально. Я использую $ rootScope, потому что приложение простое, и служба не нужна. –

+0

SO Ваша форма относится к 'OrderCtrl'. вы пытались распечатать журнал в 'OrderCtrl' (не в функции)? Я думаю, вместо этого '$ rootScope.order = function()' use '$ scope.order = function()'. Потому что в html вы используете конкретную «область». Что относительно 'body?' Ng-controller = "OrderCtrl"? –

ответ

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, вам нужно использовать $scope в OrderCtrl контроллер для извлечения каких-либо данных. Но, конечно, вы можете сохранить его после того, как в $rootScope

Пожалуйста, смотрите пример в Fiddle

+0

Вы имели в виду $ rootscope.order или $ scope.orde. 'Причина $ scope.order дает ошибку. –

+0

, потому что 'OrderCtrl' остается только с' $ rootScope', извините, исправлено –

+0

Проблема не решена с помощью приведенного выше кода. Все еще получите неопределенное. –

Смежные вопросы