当我按下我的按钮时,我想在控制台中打印文本框的值。但我的文本框返回一个未定义的。似乎所有的代码都运行得很完美,我的代码与之前使用的其他代码完全相同,但它现在还没有用。
这是我的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 :(得分: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
中的示例