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
Javascript 观察angularjs中的值_Javascript_Angularjs - Fatal编程技术网

Javascript 观察angularjs中的值

Javascript 观察angularjs中的值,javascript,angularjs,Javascript,Angularjs,如何在angularjs中观察ng模型的数组值我创建了fiddle,但不起作用,请看一看并提出建议 谢谢 <div ng-app ng-controller="ParentCtrl"> <div ng-controller="ChildCtrl"> <table> <tr ng-repeat="user in profiles track by $index"> &l

如何在angularjs中观察ng模型的数组值我创建了fiddle,但不起作用,请看一看并提出建议

谢谢

<div ng-app ng-controller="ParentCtrl">
    <div ng-controller="ChildCtrl">
        <table>
            <tr ng-repeat="user in profiles track by $index">
                 <td>
                    <input
                      type="text"
                      name="parktime_{{user.user_id}}"
                      ng-model="orderItems[user.user_id].parktime"
                      >
                 </td>
            </tr>
        </table>
        </div>
</div>



 function ParentCtrl($scope) {
    }

    function ChildCtrl($scope) {
        $scope.parkOptions = {};
        $scope.profiles = [
            {user_id: '01', park_name: 'England Park'},
            {user_id: '02', park_name: 'France Park'}
        ];
 $scope.orderItems = {};
$scope.orderItems.parktime = "Test";

        $scope.$watch('orderItems[profiles.user_id].parktime', function(newVal, oldVal){
            console.log(newVal);
        })

    }

函数ParentCtrl($scope){
}
函数ChildCtrl($scope){
$scope.parkOptions={};
$scope.profiles=[
{用户id:'01',公园名称:'England park'},
{用户id:'02',公园名称:'France park'}
];
$scope.orderItems={};
$scope.orderItems.parktime=“测试”;
$scope.$watch('orderItems[profiles.user_id].parktime',函数(newVal,oldVal){
console.log(newVal);
})
}

您正在尝试访问不存在的索引。profiles是一个对象数组,我认为profiles.user\u id index上没有任何可用的内容。另外,我认为orderItems[profiles.user_id]不会工作,因为该索引也不存在。

您正在尝试访问不存在的索引。profiles是一个对象数组,我认为profiles.user\u id index上没有任何可用的内容。此外,我认为orderItems[profiles.user_id]不会起作用,因为该索引也不存在。

我建议您改用它。你不能用这种方式观看,而是观看一个单一的属性

我还更新了您的模型以供使用。这是您应该小心使用的,但在您的情况下,您需要在
orderItems
对象的每个位置定义一个键。如果您总是静态地分配这些,我建议您遍历它们一次,然后以这种方式创建一个键

HTML

      <input type="text" name="parktime_{{user.user_id}}"
      ng-init="orderItems[user.user_id] = {}"
      ng-model="orderItems[user.user_id].parktime"
      ng-change="onChange(user.user_id)">
我建议你改用。你不能用这种方式观看,而是观看一个单一的属性

我还更新了您的模型以供使用。这是您应该小心使用的,但在您的情况下,您需要在
orderItems
对象的每个位置定义一个键。如果您总是静态地分配这些,我建议您遍历它们一次,然后以这种方式创建一个键

HTML

      <input type="text" name="parktime_{{user.user_id}}"
      ng-init="orderItems[user.user_id] = {}"
      ng-model="orderItems[user.user_id].parktime"
      ng-change="onChange(user.user_id)">

我在文本框中有datetime选择器,如果我在小提琴中使用它,它不会向我显示控制台,它说安全未定义,你能用你的实际操作更新你的示例吗?我们只能根据得到的回答。如果您使用jQuery库来更改该值,这就是Angular不知道发生了什么的原因。您也没有在控制器中声明
$scope.orderItems
。是的,这是正确的,但我想看看是否在模型中找到了更新的新值,因为我没有键入任何内容,我只选择了日期和时间。对此我很抱歉。但是我知道您的时间,如果您能使用Angular.forEach(用户信息,函数(用户,键){$scope.$watch('[orderItems[user.user\u id].flight\u arrival\u time,orderItems[user.user\u id].Extairation\u flight\u time]',函数(newVal,oldVal){if(newVal!==oldVal&&typeof oldVal!='undefined'){var orderItems={'order_id':$scope.order.order_id,'flg_time':newVal[0],'dep_time':newVal[1],}$scope.saveOrder(user,orderItems);}},true);});我在文本框中有datetime选择器,如果我在小提琴中使用它,它不会显示控制台,它说安全未定义。你能用你实际做的事情更新你的例子吗?我们只能根据给出的答案来回答。如果你使用jQuery库来更改值,这就是Angular不知道发生了什么的原因。在t例如,您没有添加ng init,因此模型未定义。您也没有在控制器中声明
$scope.orderItems
。是的,这是正确的,但我想看看是否在模型中找到了更新的新值,因为我没有键入任何内容,我只选择了日期和时间。对此表示抱歉。但我已经通知了您的时间,请指导我f您可以使用Angular.forEach(userInfo,function(user,key){$scope.$watch('[orderItems[user.user\u id].flight\u arrival\u time,orderItems[user.user\u id]{'order_id':$scope.order.order_id,'flg_time':newVal[0],'dep_time':newVal[1],}$scope.saveOrder(user,orderItems);}},true);});