Javascript 为什么我的作用域函数不能从模型中获取数据?

Javascript 为什么我的作用域函数不能从模型中获取数据?,javascript,angularjs,Javascript,Angularjs,我有一个简单的angular应用程序,它要求用户输入名字和姓氏,但出于某种原因,我的changeBothNames()函数没有使用新值将firstName和lastName模型传递给它 这是我目前的应用程序: var-app=angular.module(“myApp”,[]); app.controller(“mainCtrl”、[“$scope”, 职能($范围){ $scope.message=“你好”; $scope.firstName=“”; $scope.lastName=“”;

我有一个简单的angular应用程序,它要求用户输入名字和姓氏,但出于某种原因,我的changeBothNames()函数没有使用新值将firstName和lastName模型传递给它

这是我目前的应用程序:

var-app=angular.module(“myApp”,[]);
app.controller(“mainCtrl”、[“$scope”,
职能($范围){
$scope.message=“你好”;
$scope.firstName=“”;
$scope.lastName=“”;
$scope.fullName=$scope.firstName++$scope.lastName;
$scope.updateName=函数(){
$scope.fullName=$scope.firstName++$scope.lastName;
}
$scope.changeBothNames=函数(第一、第二){
警报(“赞成”,第一,第二);
$scope.firstName=first;
$scope.lastName=second;
$scope.updateName();
}
}
]);
[ng-app=“myApp”][ng-controller=“mainCtrl”]{
最大宽度:750px;
保证金:50px自动0自动;
显示:-网络工具包盒;
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
-webkit盒包:中心;
-webkit内容:中心;
-ms-flex-pack:center;
证明内容:中心;
-网络工具包盒方向:垂直;
-webkit盒方向:正常;
-webkit柔性方向:列;
-ms-flex方向:列;
弯曲方向:立柱;
}
[ng app=“myApp”][ng controller=“mainCtrl”][ng model=“firstName”],
[ng-app=“myApp”][ng-controller=“mainCtrl”][ng-model=“lastName”]{
填充物:5px;
边界:0;
边框底部:1px实心#ccc;
右边距:10px;
大纲:0;
}
[ng app=“myApp”][ng controller=“mainCtrl”][ng click=“changeBothNames(firstName,lastName)”]{
边界:0;
颜色:鬼白色;
填充:15px;
字号:700;
背景图像:-webkit线性渐变(顶部,#00B6FF,#002D40);
背景图像:线性渐变(至底部,#00B6FF,#002D40);
-webkit过渡:全部.25秒易入易出;
过渡:所有.25秒轻松进出;
}
[ng app=“myApp”][ng controller=“mainCtrl”][ng click=“changeBothNames(firstName,lastName)”]:悬停{
-webkit转换:translateY(-2px);
transform:translateY(-2px);
盒影:0 5px2px黑色;
}
[ng app=“myApp”][ng controller=“mainCtrl”][id=“output”][id=“问候语”]{
字号:700;
文本转换:大写;
字体大小:24px;
}

更新名称
{{firstName}}{{lastName}}
{{message}}{{fullName}

正在传入值,但只接受一个参数。将其更改为
console.log
,您将看到

var-app=angular.module(“myApp”,[]);
app.controller(“mainCtrl”、[“$scope”,
职能($范围){
$scope.message=“你好”;
$scope.firstName=“”;
$scope.lastName=“”;
$scope.fullName=$scope.firstName++$scope.lastName;
$scope.updateName=函数(){
$scope.fullName=$scope.firstName++$scope.lastName;
}
$scope.changeBothNames=函数(第一、第二){
console.log(“是”,第一,第二);
document.getElementById('message').innerHTML=first+''+second;
$scope.firstName=first;
$scope.lastName=second;
$scope.updateName();
}
}
]);
[ng-app=“myApp”][ng-controller=“mainCtrl”]{
最大宽度:750px;
保证金:50px自动0自动;
显示:-网络工具包盒;
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
-webkit盒包:中心;
-webkit内容:中心;
-ms-flex-pack:center;
证明内容:中心;
-网络工具包盒方向:垂直;
-webkit盒方向:正常;
-webkit柔性方向:列;
-ms-flex方向:列;
弯曲方向:立柱;
}
[ng app=“myApp”][ng controller=“mainCtrl”][ng model=“firstName”],
[ng-app=“myApp”][ng-controller=“mainCtrl”][ng-model=“lastName”]{
填充物:5px;
边界:0;
边框底部:1px实心#ccc;
右边距:10px;
大纲:0;
}
[ng app=“myApp”][ng controller=“mainCtrl”][ng click=“changeBothNames(firstName,lastName)”]{
边界:0;
颜色:鬼白色;
填充:15px;
字号:700;
背景图像:-webkit线性渐变(顶部,#00B6FF,#002D40);
背景图像:线性渐变(至底部,#00B6FF,#002D40);
-webkit过渡:全部.25秒易入易出;
过渡:所有.25秒轻松进出;
}
[ng app=“myApp”][ng controller=“mainCtrl”][ng click=“changeBothNames(firstName,lastName)”]:悬停{
-webkit转换:translateY(-2px);
transform:translateY(-2px);
盒影:0 5px2px黑色;
}
[ng app=“myApp”][ng controller=“mainCtrl”][id=“output”][id=“问候语”]{
字号:700;
文本转换:大写;
字体大小:24px;
}

更新名称
{{firstName}}{{lastName}}
{{message}}{{fullName}

唯一尚未解决的问题是ng if div。当
fullName!=''时,它应该显示正确的输出,但它只显示第一个ng if?我很困惑,特别是因为,正如您所指出的,函数被调用了,因此我们可以假设updateName()也被调用了,因此
fullName!=''不再。有什么想法吗?@SkullDev这是因为你在做作业(
fullName=''
),而你本应该做比较(
fullName=''
)。我更新了代码以显示结果。干杯,伙计!最近做了这么多反应,我忘记了角的东西哈哈。太棒了,真不敢相信这么简单!