【发布时间】:2015-02-27 01:32:29
【问题描述】:
您好,我有一个按钮可以触发两个类似的功能。有没有办法让 updateDetails 仅在 changeColor 完成后运行? updateDetails 当前正在使用旧颜色而不是更改后的颜色提取旧配置。
ng-click="changeColor(color.code); updateDetails()"
这是视图:
<div ng-controller="ColorsCtrl">
<div ng-controller="HeaderCtrl">
<div byo-header>
</div>
<div ng-repeat="color in colors" class="row">
<div class="small-12 columns">
<div ng-controller="ButtonsController">
<div class="button-group">
{{ isSelected(color.code) }}
<button ng-click="changeColor(color.code); updateDetails()" type="radio" class="button" ng-model="selectedColor" btn-radio="color.code">{{color.name}}</button>
</div>
</div>
</div>
</div>
<br/>
<br/>
<div class="row">
<div class="small-4 small-offset-4 columns">
<!-- Proceed to packages if available -->
<a ng-if="hasPackage" href="#/packages/{{modelCode}}" class="button">Packages</a>
<!-- Proceed to options if packages not available -->
<a ng-if="!hasPackage" href="#/options/{{modelCode}}" class="button">Options</a>
</div>
</div>
</div>
</div>
这里是 ColorsCtrl 中的 changeColor():
$scope.changeColor = function(newColorCode){
//swap previous selected color with new
configuratorService.addOption($scope.modelCode, newColorCode, function(configuration){
$scope.configuration = configuration;
});
}
}
这里是 HeaderCtrl 中的 updateDetails
$scope.updateDetails = function(){
$scope.summaryDetails = getSummaryDetails();
}
【问题讨论】:
-
从技术上讲,如果你的调用返回一个承诺,你可以内联编写,你在
configuratorService.addOption内部做什么操作? -
@PSL 我正在做一个看跌期权
-
如果你从你的服务返回一个承诺,你可以将它内联写在视图中,而不是传递一个回调。如果你愿意,我可以举个例子。
标签: javascript html angularjs function angularjs-controller