2016-08-08 7 views
0

ng-modelの値をng-clickに渡すにはどうすればいいですか?ng-clickへのng-model値の受け渡しに失敗しました

<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 Error:引数 'TodoCtrl'は関数ではなく、定義されていません。 ' –

+0

あなたのコードにもタイプミスがあります。 'username'と' usernama'です。 –

+0

@ShuruiLiuもし私が誤植を修正してもそれはうまくいかないでしょう –

答えて

0

あなたng-app属性の欠落declerationがあります。これを試してみてください:

<div ng-app='myApp'> 

また、あなたの関数名と引数のタイプミス修正:

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

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

+0

EuniceChia上記の作業フィールドを見て、ありがとう@ジャックジョップ – 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後の括弧()を使用しているとして

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

の下にあなたの提出方法を更新してください関数の宣言が無効です。

<div ng-app="myApp"> 

のようにNG-アプリに名前を与えると警告の内部で適切に、あなたは変数名に間違いのスペルを行っている変数名を与えます。ここで

1

は正解です:

alertで「ユーザー名」を修正し、また、メソッドを定義することは$scope.submit = function() { }

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

paranthesisを使うべきではありませんしながら、また、あなたは、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>

関連する問題