Javascript 获取国家的id返回表达式“mid=s.id”是不可赋值的
我有一个函数,它返回一个名为mid的范围,以保存要分配给填充状态的国家的id选择框。下面是初始化的函数和作用域Javascript 获取国家的id返回表达式“mid=s.id”是不可赋值的,javascript,angularjs,Javascript,Angularjs,我有一个函数,它返回一个名为mid的范围,以保存要分配给填充状态的国家的id选择框。下面是初始化的函数和作用域 $scope.logId = function() { $scope.mid = 1; console.log($scope.mid); return ($scope.mid); }; 我有一个国家循环,在循环过程中返回id。在尝试将select选项中的国家/地区id分配给$scope mid时,请更改函数$scope.logI
$scope.logId = function() {
$scope.mid = 1;
console.log($scope.mid);
return ($scope.mid);
};
我有一个国家循环,在循环过程中返回id。在尝试将select选项中的国家/地区id分配给$scope mid时,请更改函数$scope.logId的初始$scope.mid,以便在调用get states函数时,它将收到函数$scope.logId的当前id,我将收到此错误
Expression 'mid = s.id' is non-assignable. Element: <option ng-repeat="s in countries" ng-model="mid = s.id" value="{{s.name}}" class="ng-pristine ng-untouched ng-valid ng-binding ng-scope">
这是我正在进行循环和分配的国家的循环
<option ng-repeat="s in countries" ng-model="mid = s.id" value="{{s.name}}">{{s.name}}</option>
编辑以显示完整的代码
请协助获取要分配给scope mid并从logId函数接收的选择选项id的值,以便在logId上调用ng click时,返回所选国家/地区的当前id尝试此类型的html和控制器。 检查工作样品
请检查此代码: 在我的演示中,我还为国家/地区实现了一个模拟API调用,请检查 {{c.name}} var-app=angular.module'myApp',[]; app.controller'myCtrl',函数$scope,$http{ $scope.getCountries=函数{ $http。gethttps://restcountries.eu/rest/v2/all .Then函数响应{ console.logresponse $scope.countries=response.data; }; } $scope.getCountries; $scope.logId=函数{ 警报$scope.mid; }; }; 请选择一个国家,将调用logId
我认为你的实施是错误的。请尝试像这样实现,我只是硬编码国家和州的演示。你也可以调用API并相应地更新列表。我无法与你开始聊天。我在这里看不到做这种事的链接。你到底想要什么?我不明白你上次留言的意思!当前所选国家/地区的id为“cid”型。您可以像“$scope.cid”一样访问它。我应该显示api代码,以便您根据硬编码的答案调整它。我已经尝试过,但找不到解决方法。您不能对ng模型使用赋值运算符,您应该使用ng model=mid。我如何为它赋值并将其传递给HTMLW中的函数logId。要赋值,请添加一些控制器代码?在选项选择标记期间,此>>>ng click=mid=s.id。但问题是,在选择选项后,我无法在函数logId中获取mid。您应该从控制器调用getCountries,first@rocket,我在我的演示中实现了一个模拟API调用请检查这些似乎更为定制,但我的API下拉列表不再拉数据,因此需要时间将数据填充到下拉列表中当我的页面加载时,我在实现后收到一个错误的请求你实现了相同的API?
<select ng-click="getCountries()" formcontrol name="country" class="ng-untouched ng-pristine ng-valid" required>
<option ng-repeat="s in countries" ng-click="mid = s.id" value="{{s.name}}">{{s.name}}</option>
</select>
</div>
<div ng-class = "{'has-error':frmValidation.state.$invalid && !frmValidation.state.$pristine}" class="field required">
<label>State</label>
<select ng-click="getStates(mid)" ng-model="reg.state" formcontrol name="state" class="ng-untouched ng-pristine ng-invalid" required >
<option ng-repeat="s in states" value="{{s.name}}">{{s.name}}</option>
</select>
</div>
<select ng-change="getStates()" formcontrol name="country" ng-model="cid" required>
<option ng-repeat="c in countries" value="{{c.id}}">{{c.name}}</option>
</select>
<select formcontrol name="state" ng-model="sid" required>
<option ng-repeat="s in states" value="{{s.id}}">{{s.name}}</option>
</select>
app.controller('myCtrl', function($scope) {
$scope.cid = "1";
$scope.countries = [
{id : "1", name : "Country 1"},
{id : "2", name : "Country 2"},
{id : "3", name : "Country 3"}
];
$scope.getStates = function() {
console.log($scope.cid);
someApiCall($scope.cid, function() {
$scope.states = resultFromAPI;
})
/* $scope.states = [
{id : "11", name : "State 1"},
{id : "12", name : "State 2"},
{id : "13", name : "State 3"}
];*/
}
});