如果没有,则在angularJs消息中未定义

时间:2015-10-24 23:00:14

标签: javascript angularjs

如果我没有在我的两个文本框中写入任何内容,将会看到错误的原因是:undefined,当你写完内容时它会先出现。

我写过这样的代码:

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 til undefined undefined

但是,我也尝试这样做以检查内容是否为空。

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 :(得分: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>

在这种情况下,你实际上甚至不需要控制器中的任何东西。