2015-08-03 2 views
1

У меня есть форма, такие какAngularjs не может прочитать свойство ПгвЬЫата неопределенных

Html:

<form ng-submit="log(user)"> 
    <input type="text" ng-model="user.firstname"> 

<input type="text" ng-model="user.lastname 

</form> 

угловой:

.controller ('', function ($scope){ 

    $scope.log = function (user){ 

     console.log (user.firstname) 
    } 
}) 

Это работало раньше, но теперь он бросает не может читать пользователь собственности .firstname

Пожалуйста, помогите мне. Спасибо

+0

use console.log ($ scope.user.firstname) –

+0

исправьте html, я думаю, что это проблема. <входной тип = «текст» нг-модель = "user.lastname закрывающий тег не существует –

+1

определить пользователя в контроллере, как $ scope.user = {};.. – Hmahwish

ответ

0

Если параметр пользователя не определен, вы не можете получить доступ к первому из неопределенных значений, вы можете попробовать ниже фрагмент, чтобы решить вашу проблему.

.controller ('', function ($scope){  
      $scope.log = function (user){ 
        if(user){ //Strict Check: toString.call(user) == "[object Object]" 
        console.log (user.firstname) 
        } 
      } 
    }) 
1

AngualarJs богат связывания данных с двухсторонней. Вам не нужно было пропускать пользователя объекта области видимости в журнале функций. Его доступно в контроллере всегда с обновленным значением. Просто инициализацию пользователя в качестве объекта области видимости и попробовать код

В HTML:

<form ng-submit="log()"> 
    <input type="text" ng-model="user.firstname" /> 
    <input type="text" ng-model="user.lastname" /> 
</form> 

В Js

.controller ('', function ($scope){ 
    $scope.user = {}; // Declare here 
    $scope.log = function(){ 
     console.log ($scope.user.firstname); 
    } 
}) 
0

Это полный рабочий пример, несколько похожа на вашу.

<div ng-app="myApp" ng-controller="myCtrl"> 
First Name: <input type="text" ng-model="firstName"><br> 
Last Name: <input type="text" ng-model="lastName"><br> 
<br> 
Full Name: {{firstName + " " + lastName}} 
</div> 
<script> 
var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.firstName = "John"; 
    $scope.lastName = "Doe"; 
}); 
</script> 

Пожалуйста, попробуйте это.

Благодаря Amit

0

Удалить ниже код

ng-submit="log(user)" 

и удалить тип кнопки отправить

и добавить ниже линии

<input type="button" ng-click="log()"/> 

Ваш файл JS

$scope.log=function(){ 
    console.log($scope.firstname); 
    console.log($scope.lastname); 
} 
Смежные вопросы