Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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
Angularjs Angular select ngChange获取父json对象键而不是值_Angularjs - Fatal编程技术网

Angularjs Angular select ngChange获取父json对象键而不是值

Angularjs Angular select ngChange获取父json对象键而不是值,angularjs,Angularjs,我创造了一个假设的例子;因为我不能和大家分享我的真实例子。请原谅我仓促创建的json文件 解决这个问题。假设我使用一个json文件填充了一个select,该文件包含一个(美国州)对象数组: State.json { "states": [ { code: "AL", name: "Alabama" }, { code: "AK", name: "Alaska"

我创造了一个假设的例子;因为我不能和大家分享我的真实例子。请原谅我仓促创建的json文件

解决这个问题。假设我使用一个json文件填充了一个select,该文件包含一个(美国州)对象数组:

State.json

{ "states": 
   [
        {
          code: "AL",
          name: "Alabama"
        },
        {
          code: "AK",
          name: "Alaska"
        },
        {
          code: "AS",
          name: "American Samoa"
        },
        {
          code: "AZ",
          name: "Arizona"
        },
        {
          code: "AR",
          name: "Arkansas"
        },
        {
          code: "CA",
          name: "California"
        },
        {
          code: "CO",
          name: "Colorado"
        },
        {
          code: "CT",
          name: "Connecticut"
        },
        ... etc...


]}
我拉入json文件并将其设置为范围项,如下所示:

main controller.js

app.controller('MainCtrl', function ('$scope') { 
  $scope.states = [
    { code: "AL": name: "Alabama" },
    //etc
  ];

  $scope.selectStateChange = function (stateCode) {
      console.log(stateCode);
  }
});
index.html

以下是我的选择:

<select ng-model="selectedState" ng-change="selectStateChange(selectedState)">
    <option ng-repeat="state in states">{{state.name}}</option>
</select>

{{state.name}
我的问题
如何获取要传递到函数selectStateChange on my ng change中的实际状态代码?

console.log(stateCode)

你试过了吗

  $scope.selectStateChange = function (selectedState) {
      console.log(selectedState.code);
  }

console.log(stateCode);,将什么get记录到控制台中

你试过了吗

  $scope.selectStateChange = function (selectedState) {
      console.log(selectedState.code);
  }
您应该尝试使用而不是ng repeat on选项

这样,您的模型将是最新的,访问所选对象将非常方便

在您的案例中应该是这样的:

<select ng-model="selectedState" ng-options="state.name for state in states" ng-change="selectStateChange()">
</select>
这样,selectedState等于{ 代码:“AL”, 姓名:“阿拉巴马州” }

您应该尝试使用而不是ng repeat on选项

这样,您的模型将是最新的,访问所选对象将非常方便

在您的案例中应该是这样的:

<select ng-model="selectedState" ng-options="state.name for state in states" ng-change="selectStateChange()">
</select>
这样,selectedState等于{ 代码:“AL”, 姓名:“阿拉巴马州”
}

未定义
选定状态返回状态。name@chrisjlee我建议按照sebastienbarbier的回答
undefined
selected state返回状态。name@chrisjlee我建议遵循sebastienbarbier的回答抱歉在发送后做了一些更新,出现了一些错误。您是否故意不在selectStateChange函数中传递任何内容?是的,您可以从ng模型访问模型,因此在您的范围内A ok。这是有道理的。很抱歉,在发送后进行了一些更新,出现了一些错误。您是否有意不在selectStateChange函数中传递任何内容?是的,您可以从ng模型访问模型,因此在您的范围内A确定。这是有道理的。上面的描述不清楚您的
$scope.states
是一个对象(散列)还是一个数组。很抱歉,这是一个状态对象数组。我已经更新了它。上面的描述不清楚您的
$scope.states
是一个对象(散列)还是一个数组。很抱歉,这是一个状态对象数组。我已经更新了。