gpt4 book ai didi

javascript - 如何 $broadcast 功能到 AngularJS 中的其他 Controller ?

转载 作者:行者123 更新时间:2023-12-03 22:52:21 26 4
gpt4 key购买 nike

我有三个屏幕,每个屏幕都具有相同的位置 Treeview 下拉功能,我在下面的函数中实现,现在我想在需要位置 Treeview 下拉列表的任何应用程序中使用它。假设我有另一个 Controller Ctrl2.js 如何使用 updateGeolocationList() 函数来自 Ctrl1.js。任何帮助将不胜感激。

Ctrl1.js

$scope.updateGeoLoctionList = function(geoLocation){
var pos = $.inArray(geoLocation.text, selectedGeoLocations);

if(pos < 0){
selectedGeoLocations.push(geoLocation.text);
selectedGeoLocationIds.push(geoLocation.id);
//if Global is checked disable all parent and children
if (geoLocation.id === 5657){
$.each(geoLocation.parent(),function(index,location) {
if (location.id !== geoLocation.id) {
$.each(location._childrenOptions.data.items,function(index,child){
var disableChildId = 'disabled' + child.id;
var model = $parse(disableChildId);
model.assign($scope, true);
})
var disableItemId = 'disabled' + location.id;
// Get the model
var model = $parse(disableItemId);
// Assigns a value to it
model.assign($scope, true);

}
});
}
}

配置文件
geoLocationTreeConfig : {
template: '{{dataItem.text}}',
checkboxes: {
checkChildren: false,
template: '<input ng-disabled=\'disabled#: item.id #\' type=\'checkbox\' ng-click=\'updateGeoLoctionList(dataItem)\' value=\'true\' />'
}
},controlInPrcsGeoLocationTreeConfig : {
template: '{{dataItem.text}}',
checkboxes: {
checkChildren: false,
template: '<input {{dataItem.disabled}} type=\'checkbox\' ng-click=\'populateControlInPrcsGeoLoction(dataItem)\' value=\'true\' />'
}
},riskInPrcsGeoLocationTreeConfig : {
template: '{{dataItem.text}}',
checkboxes: {
checkChildren: false,
template: '<input ng-disabled=\'disabled#: item.id #\' type=\'checkbox\' ng-click=\'populateRisToProcesskGeoLoctionList(dataItem)\' value=\'true\' />'
}
}

最佳答案

您可以使用 $broadcast 或 $emit (冒泡向上,与向下冒泡),但我认为更好的模式是将其移动到它自己的指令中。然后您可以将该指令包含在您想要的任何 html 中。在该指令中包含一个 ng-click,每当用户单击该元素时,就会出现下拉列表。

但是如果没有更多信息/代码,就很难完全理解您的意图,因为这只是一个配置对象和来自 Controller 的功能。但这里有一个链接到 kindo Treeview Angular 页面了解更多信息:http://demos.telerik.com/kendo-ui/treeview/angular

关于javascript - 如何 $broadcast 功能到 AngularJS 中的其他 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777001/

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