2013-05-31 4 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

그래서 귀하의 양식은 'OrderCtrl'을 참조합니다. 'OrderCtrl'에 로그인하지 않으셨습니까? 대신'$ rootScope.order = function()'이'$ scope.order = function()'을 사용한다고 생각합니다. html에서는 특정 '범위'를 사용하기 때문입니다. 'body?'ng-controller = "OrderCtrl"은 무엇입니까? –

답변

0

대신

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

사용 : 양식에 OrderCtrl 아래에 존재하기 때문에

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

, 당신은 모든 데이터를 가져 OrderCtrl 컨트롤러에 $scope을 사용해야합니다. 그러나, 물론, 당신은

$rootScope는, 모든 코드를 제시해주십시오 Fiddle

+0

$ rootscope.order 또는 $ scope.orde를 의미 했습니까? 왜냐하면 $ scope.order에서 오류가 발생합니다. –

+0

'OrderCtrl'이'$ rootScope' 만 가지고 있기 때문에, 죄송합니다, 고정 –

+0

위의 코드로 문제가 해결되지 않았습니다. 아직도 정의되지 않은 것을 얻습니다. –

관련 문제