2015-10-24 6 views
1

Так вот, если я не написал ни одного содержимого в своем двух текстовом поле, он увидит его с ошибками: undefined, и он на первом месте, когда вы написали что-то содержимое.undefined in angularJs message, если ничего нет

Я написал код так:

default.aspx

<div ng-app="Welcomecontroller" ng-controller="FullName"> 
     <label>Name:</label> 
     <input type="text" ng-model="Fornavn" placeholder="Enter a name here"> 
     <input type="text" ng-model="Efternavn" placeholder="Enter a name here"> 
     <hr> 
     <h1>{{fullName()}}</h1> 
     </div> 

WelcomeController.js

var Welcome = angular.module('Welcomecontroller', []); 
Welcome.controller('FullName', function ($scope) { 
    $scope.fullName = function() { 
     return "Velkommen til " + $scope.Fornavn + " " + $scope.Efternavn; 
    } 
}); 

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

Velkommen сезам неопределенного неопределенного

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

WelcomeController.js

var Welcome = angular.module('Welcomecontroller', []); 
Welcome.controller('FullName', function ($scope) { 
    if ($scope.Fornavn != "" && $scope.Efternavn != "") { 
     $scope.fullName = function() { 
      return "Velkommen til " + $scope.Fornavn + " " + $scope.Efternavn; 
     } 
    } 
    else 
    { 
     return "Test"; 
    } 
}); 
+1

Какой результат вы ожидаете? Я не могу понять вашу проблему! что вы хотите точно? –

+0

@AhmedEid Моя проблема в том, что, например, если у меня два текстовых поля пустые, нужно показать что-то вперед, но против чего-то получается в обоих из них, тогда он говорит: «Имя пользователя Velkommen здесь» –

+0

не делает никакой хорошей оценки 'if' вне функции. Кроме того, по сравнению с пустой строкой это не то же самое, что undefined – charlietfl

ответ

2

Вы можете использовать ng-if в самом шаблоне, чтобы проверить.

<div ng-app="Welcomecontroller" ng-controller="FullName as fullname"> 
    <label>Name:</label> 
    <input type="text" ng-model="fullname.Fornavn" placeholder="Enter a name here"> 
    <input type="text" ng-model="fullname.Efternavn" placeholder="Enter a name here"> 
    <hr> 
    <h1 ng-if="fullname.Fornavn && fullname.Efternavn"> 
    Velkommen til {{fullname.Fornavn}} {{fullname.Efternavn}}</h1> 
    <h1 ng-if="!fullname.Fornavn || !fullname.Efternavn">Test</h1> 
    </div> 

В этом случае вам вообще ничего не нужно в контроллере.

+0

Спасибо за помощь. и я надеюсь, что у меня будет +1 для моего Ask :) –

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