2016-08-08 2 views
0

Как передать значение ng-модели для ng-click?Не удалось передать значение ng-модели в ng-click

<div ng-controller="TodoCtrl"> 
    <input type="text" ng-model="username"> 
    <button class="btn-primary" type="submit" ng-click="submit(username)">submit</button> 
</div> 

Почему в моей функции отправки он не получает значение имени пользователя?

http://jsfiddle.net/U3pVM/26604/

+0

вы видите консоль ли? 'angular.min.js: 60 Ошибка: аргумент 'TodoCtrl' не является функцией, получил undefined' –

+0

И вы также получили опечатки в своем коде. 'username' и' usernama'. –

+0

@ShuruiLiu, если я исправлю опечатку, это тоже не сработает –

ответ

0

Существует недостающее decleration вашего атрибута ng-app. Попробуйте это:

<div ng-app='myApp'> 

Кроме того, исправить имя функции и аргумента опечатка:

$scope.submit = function(username){ 
    alert(username) 
    } 
+0

http://jsfiddle.net/U3pVM/26605/ – jackjop

+0

EuniceChia посмотрите на приведенную выше рабочую скрипку, спасибо @jackjop – AranS

0

Есть некоторые ошибки в коде

Ниже найти фиксированный код

HTML

<div ng-app="myApp"> 
    <div ng-controller="TodoCtrl"> 
     <input type="text" ng-model="username"> 
     <button class="btn-primary" type="submit" ng-click="submit(username)">submit</button> 
    </div> 
</div> 

CONTROLLER

var app = angular.module('myApp', []); 
app.controller('TodoCtrl', function($scope) { 
    $scope.submit = function(username){ 
     alert(userame) //get username here 
    } 
}); 
0

есть ошибки в вашей скрипке

обновите представить метод, как показано ниже

$scope.submit = function(username){ 
    alert(username) //get username here 
    } 

Вы используете круглые скобки() после $ scope.submit, который недействительное объявление для функции.

также дать имя нг-приложения, как

<div ng-app="myApp"> 

и внутри боевой готовности дать имя переменной правильно, вы сделали Опечатка в имени переменной.

1

Вот правильный ответ:

Исправленный «имя пользователя» в alert, а также при определении метода не должны использовать paranthesis $scope.submit = function() { }

var app = angular.module('myApp', []); 
app.controller('TodoCtrl', function($scope) { 
    $scope.submit = function(username){ 
    alert(username) //get username here 
    } 
}); 

Также вы должны указать имя модуля в HTML:

<div ng-app='myApp'> 
    <div ng-controller="TodoCtrl"> 
     <input type="text" ng-model="username"> 
      <button class="btn-primary" type="submit" ng-click="submit(username)">submit</button> 
    </div> 
</div> 
2

Вам не нужно передавать имя пользователя в качестве параметра вашей функции. Вы можете получить значение имени пользователя из $ scope.username в своей функции.

1

Есть некоторые пропуски и орфографические ошибки.

var app = angular.module('myApp', []); 
 
app.controller('TodoCtrl', function($scope) { 
 
    $scope.submit = function(username){ 
 
    \t alert(username) //get username here 
 
    console.log("username", username) 
 
    } 
 
});
<div ng-app ="myApp"> 
 
    <div ng-controller="TodoCtrl"> 
 
     <input type="text" ng-model="username"> 
 
      <button class="btn-primary" type="submit" ng-click="submit(username)">submit</button> 
 
    </div> 
 
</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>

Вот обновленный Demo

+0

Ваш код работает на моем localhost, но не на моем JSFiddle, я забыл что-нибудь сделать? –

+0

Я обновил вашу скрипку [здесь] (http://jsfiddle.net/U3pVM/26608/). plese проверьте это. На самом деле вам не удалось добавить имя 'ng-app'. Были некоторые орфографические ошибки и т. Д. –

0

Это пример вашего требования.Просто проверьте мой сниппет, отправив значение на alert().

var app = angular.module("myApp",[]); 
 
app.controller("myCtrl",function($scope){ 
 
$scope.submit = function(mymdl){ 
 
    alert(mymdl); 
 
} 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<input type="text" ng-model="mymdl"/> 
 
    <button ng-click="submit(mymdl)">Submit</button> 
 
</div>

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