Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取国家的id返回表达式“mid=s.id”是不可赋值的_Javascript_Angularjs - Fatal编程技术网

Javascript 获取国家的id返回表达式“mid=s.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

我有一个函数,它返回一个名为mid的范围,以保存要分配给填充状态的国家的id选择框。下面是初始化的函数和作用域

$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"}
      ];*/
    }
});