gpt4 book ai didi

javascript - AngularJS 广播

转载 作者:行者123 更新时间:2023-12-03 10:18:04 30 4
gpt4 key购买 nike

我有一个刷新功能,需要广播到子 Controller 。我在父 Controller 中做了类似的事情:

      // Refresh/Cancel
$scope.OnGridBODRefresh() = {
function () {
$scope.$broadcast('refresh',$scope.dtBODStartValue,$scope.dtBODStopValue);
}
}

在子 Controller 中:

      // Refresh/Cancel
$scope.OnGridBODRefresh = function () {
// Filter setzen
kendoHelper.SetDataSourceFilters($scope.gridBODProductionRequests.dataSource, "BODTime", "gte", $scope.dtBODStartValue); // gte Kendo Operator
kendoHelper.SetDataSourceFilters($scope.gridBODProductionRequests.dataSource, "BODTime", "lte", $scope.dtBODStopValue); // lte Kendo Operator
}

$scope.dtChildStopValue = new Date();
$scope.dtChildStartValue = new Date($scope.dtChildStopValue - 7 * TIMEINTERVAL_PER_DAY_MS);

$scope.$on('refresh', function (event, dtBODStartValue, dtBODStopValue) {
$scope.dtChildStartValue = dtBODStartValue;
$scope.dtChildStopValue = dtBODStopValue;
}
)

应通过“取消”按钮激活它。我有一个错误:

"$scope.OnGridBODRefresh is not a function"

在控制台中。有谁知道这个吗?

这是我的 Controller 和 View 之间的链接:

<table border="0" class="navigationBar">
<tr>
<td class="navigationBar-left">
({{refreshcount}})
<kendo-button class="k-primary button button-save" ng-click="OnGridBODSave()">Save</kendo-button>
<kendo-button class="k-primary button button-cancel" ng-click="OnGridBODRefresh()">Cancel</kendo-button>
</td>
<td class="navigationBar-right">
@PLanguageTexts.TXT_AUTO_REFRESH: <input type="checkbox" name="checkBoxAutomaticRefresh" ng-model="checkBoxAutomaticRefreshValue" ng-true-value="1" ng-false-value="0" ng-change="OnCheckBoxAutomaticRefreshChange(e)">
|
@PLanguageTexts.TXT_BOD_TIME
<input kendo-date-time-picker="dateTimePickerBODStart" k-ng-model="dtBODStartValue" k-options="dateTimePickerBODStart"/>
<input kendo-date-time-picker="dateTimePickerBODStop" k-ng-model="dtBODStopValue" k-options="dateTimePickerBODStop"/>
</td>
</tr>
</table>


<div ng-controller="BODProductionRequestsCtrl">
<div kendo-grid="gridBODProductionRequests" k-options="gridBODProductionRequests(dataItem)">
<div k-detail-template>
<kendo-tabstrip>
<ul>
<li class="k-state-active">@PLanguageTexts.TXT_COMMENT</li>
</ul>
<div>
<textarea id="BODProductionRequestsComment" class="textarea-gridComment" ng-model="dataItem.Comment" ng-change="OnCommentChange(dataItem, gridBODProductionRequests)"></textarea>
</div>
</kendo-tabstrip>
</div>
</div>
{{dtChildStartValue}}
</div>

最佳答案

  // Refresh/Cancel
$scope.OnGridBODRefresh = function () {
$scope.$broadcast('refresh',$scope.dtBODStartValue,$scope.dtBODStopValue);
}

我不明白你为什么将函数包装到一个对象中。如果你删除函数周围的括号,它就会像魅力一样工作。

另一个问题是您的 ng-click 不在链接到 Controller 的 div 内。尝试这样做。如果不起作用,也可能是剑道有问题,我无法提供帮助。

 <div ng-controller="BODProductionRequestsCtrl">  
<table border="0" class="navigationBar">
<tr>
<td class="navigationBar-left">
({{refreshcount}})
<kendo-button class="k-primary button button-save" ng-click="OnGridBODSave()">Save</kendo-button>
<kendo-button class="k-primary button button-cancel" ng-click="OnGridBODRefresh()">Cancel</kendo-button>
</td>
<td class="navigationBar-right">
@PLanguageTexts.TXT_AUTO_REFRESH: <input type="checkbox" name="checkBoxAutomaticRefresh" ng-model="checkBoxAutomaticRefreshValue" ng-true-value="1" ng-false-value="0" ng-change="OnCheckBoxAutomaticRefreshChange(e)">
|
@PLanguageTexts.TXT_BOD_TIME
<input kendo-date-time-picker="dateTimePickerBODStart" k-ng-model="dtBODStartValue" k-options="dateTimePickerBODStart"/>
<input kendo-date-time-picker="dateTimePickerBODStop" k-ng-model="dtBODStopValue" k-options="dateTimePickerBODStop"/>
</td>
</tr>
</table>



<div kendo-grid="gridBODProductionRequests" k-options="gridBODProductionRequests(dataItem)">
<div k-detail-template>
<kendo-tabstrip>
<ul>
<li class="k-state-active">@PLanguageTexts.TXT_COMMENT</li>
</ul>
<div>
<textarea id="BODProductionRequestsComment" class="textarea-gridComment" ng-model="dataItem.Comment" ng-change="OnCommentChange(dataItem, gridBODProductionRequests)"></textarea>
</div>
</kendo-tabstrip>
</div>
</div>
{{dtChildStartValue}}
</div>

关于javascript - AngularJS 广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774273/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com