如果我没有在我的两个文本框中写入任何内容,将会看到错误的原因是: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";
}
});
答案 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>
在这种情况下,你实际上甚至不需要控制器中的任何东西。