Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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:范围值不为';无法在视图中更新_Angularjs_Angularjs Scope_Angular Ng If - Fatal编程技术网

angularjs:范围值不为';无法在视图中更新

angularjs:范围值不为';无法在视图中更新,angularjs,angularjs-scope,angular-ng-if,Angularjs,Angularjs Scope,Angular Ng If,detail.html文件中有一些按钮: <div ng-controller="test.views.detail"> <div data-ng-repeat="item in details" scroll> <button ng-click="showDetails(item)">The details</button> 在formDetail.html代码中: <div ng-controller="test.views.

detail.html文件中有一些按钮:

<div ng-controller="test.views.detail">
<div data-ng-repeat="item in details"  scroll>
    <button ng-click="showDetails(item)">The details</button>
在formDetail.html代码中:

<div ng-controller="test.views.detail">
{{detailsClicked}}
<div ng-if="detailsClicked">...

{{detailsClicked}}
...

最初,它显示了
false
以查看选中的详细信息,当我单击按钮时,它会转到showDetails函数,但
$scope的值。detailsClicked
从未更新过!直截了当地说,不确定它为什么不起作用:(

这是因为您在两个位置使用相同的控制器,并且希望范围对象与实际不同。每次在标记中调用ng controller时,都会创建一个新的范围对象。如果您希望它们基于相同的数据,请使用服务

创建将保留数据的工厂/服务,确保数据为

app.factory('detailsClicked', function(){
  var data = {
    isClicked: false
  }

  return data;
});

这是因为您在两个位置使用相同的控制器,并且希望范围对象与实际不同。每次在标记中调用ng controller时,都会创建一个新的范围对象。如果希望它们基于相同的数据,请使用服务

创建将保留数据的工厂/服务,确保数据为

app.factory('detailsClicked', function(){
  var data = {
    isClicked: false
  }

  return data;
});

这是因为您在两个位置使用相同的控制器,并且希望范围对象与实际不同。每次在标记中调用ng controller时,都会创建一个新的范围对象。如果希望它们基于相同的数据,请使用服务

创建将保留数据的工厂/服务,确保数据为

app.factory('detailsClicked', function(){
  var data = {
    isClicked: false
  }

  return data;
});

这是因为您在两个位置使用相同的控制器,并且希望范围对象与实际不同。每次在标记中调用ng controller时,都会创建一个新的范围对象。如果希望它们基于相同的数据,请使用服务

创建将保留数据的工厂/服务,确保数据为

app.factory('detailsClicked', function(){
  var data = {
    isClicked: false
  }

  return data;
});


我认为这是因为ng-repeat引入了一个额外的作用域。如果你使用ControllerAs语法,你应该能够摆脱它,但老实说,我有一段时间没有做过Angular,所以我有点生疏(但我仍然记得这一点…)。我认为Controllera将允许您专门引用controllers detailsClicked属性,因此angular将知道该做什么(我认为)=P.
formDetail.html
如何发挥作用?您是否尝试将
$scope.detailsClicked
移动到
$scope.obj={detailsClicked:false}
?在angular的早期版本中,“绑定中始终有一个点”是最佳做法。test.views.detail控制器有两个实例-一个在formDetail.html中,另一个在detail.html中。如果要在这两个实例之间共享状态,请创建一个保存状态的服务,或者在使用ui路由时使用状态参数r、 我认为这是因为ng-repeat引入了一个额外的作用域。如果你使用ControllerAs语法,你应该能够摆脱它,但老实说,我有一段时间没有做过Angular,所以我有点生疏(但我仍然记得这一点…)。我认为Controllera将允许您专门引用controllers detailsClicked属性,因此angular将知道该做什么(我认为)=P.
formDetail.html
如何发挥作用?您是否尝试将
$scope.detailsClicked
移动到
$scope.obj={detailsClicked:false}
?在angular的早期版本中,“绑定中始终有一个点”是最佳做法。test.views.detail控制器有两个实例-一个在formDetail.html中,另一个在detail.html中。如果要在这两个实例之间共享状态,请创建一个保存状态的服务,或者在使用ui路由时使用状态参数r、 我认为这是因为ng-repeat引入了一个额外的作用域。如果你使用ControllerAs语法,你应该能够摆脱它,但老实说,我有一段时间没有做过Angular,所以我有点生疏(但我仍然记得这一点…)。我认为Controllera将允许您专门引用controllers detailsClicked属性,因此angular将知道该做什么(我认为)=P.
formDetail.html
如何发挥作用?您是否尝试将
$scope.detailsClicked
移动到
$scope.obj={detailsClicked:false}
?在angular的早期版本中,“绑定中始终有一个点”是最佳做法。test.views.detail控制器有两个实例-一个在formDetail.html中,另一个在detail.html中。如果要在这两个实例之间共享状态,请创建一个保存状态的服务,或者在使用ui路由时使用状态参数r、 我认为这是因为ng-repeat引入了一个额外的作用域。如果你使用ControllerAs语法,你应该能够摆脱它,但老实说,我有一段时间没有做过Angular,所以我有点生疏(但我仍然记得这一点…)。我认为Controllera将允许您专门引用controllers detailsClicked属性,因此angular将知道该做什么(我认为)=P.
formDetail.html
如何发挥作用?您是否尝试将
$scope.detailsClicked
移动到
$scope.obj={detailsClicked:false}
?在angular的早期版本中,“绑定中始终有一个点”是最佳做法。test.views.detail控制器有两个实例-一个在formDetail.html中,另一个在detail.html中。如果要在这两个实例之间共享状态,请创建一个保存状态的服务,或者在使用ui路由时使用状态参数R