AngularJS两个控制器..克服$scope$页面加载时打开
AngularJS two controllers... overcoming $scope.$on when page loads
我的头还在AngularJS上。我有一个非常基本的页面,有两个控制器。其中一个具有文本输入以获取标签(用于搜索)。另一个调用http.get(),使用标记获取图像。。。它会进行一些排序,然后显示它们。根据下面页面上的一些信息,我想出了一些东西。一个控制器可以调用另一个控制器吗?
注意:它需要onClick()才能执行。一般来说,我希望它在页面加载时加载零标签。。。点击标签后。我在这里的其他帖子中看到了一些建议,但我不太确定在这种情况下如何实现它们。imagesController在加载时运行,但当然不会超过"handleBroadcast"部分。
var myModule = angular.module('myModule', []);
myModule.run(function($rootScope) {
$rootScope.$on('handleEmit', function(event, args) {
$rootScope.$broadcast('handleBroadcast', args);
});
});
function tagsController($scope) {
$scope.handleClick = function(msg) {
$scope.tags = msg;
$scope.$emit( 'handleEmit', { tags: msg });
};
}
function imagesController($scope,$http) {
$scope.$on('handleBroadcast', function(event, args) {
$scope.tags = args.tags;
var site = "http://www.example.com";
var page = "/images.php";
if ( args.tags ) {
page += "?tags=" + $scope.tags;
}
$http.get(site+page).success( function(response) {
// SNIP
$scope.data = response;
});
});
}
HTML非常琐碎。稍微简化了一点,但应该足够了。
<form name="myForm" ng-controller="tagsController">
<div class="left_column">
<input class="textbox_styled" name="input" data-ng-model="tags"><br>
<button ng-click="handleClick(tags);">Search</button><br>
</div>
</form>
<div class="centered" data-ng-controller="imagesController">
<span class="" data-ng-repeat="x in data">
{{x}}
</span>
</div>
不确定我是否完全理解,但如果你想在加载时不显示标签,只需在控制器加载时发出事件:
function tagsController($scope) {
$scope.handleClick = function(msg) {
$scope.tags = msg;
$scope.$emit( 'handleEmit', { tags: msg });
};
$scope.$emit( 'handleEmit', { tags: "" }); // or $scope.handleClick("");
}
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在完成加载angular js Scope元素、Directives和Http请求后是否发生任何事件
- 茉莉花/棱角.js $scope在加载控制器上未定义
- 为什么获胜'尝试重新加载数据时,我的$scope字段不清除
- 如何使用更新的$scope重新加载角度控制器
- AngularJS两个控制器..克服$scope$页面加载时打开
- $scope$手表是't在angular.js中加载后发射
- 在初始加载时初始化Angular$scope
- 在控制器呈现视图之前将ajax数据加载到$scope中
- Ionic:更新$scope变量后重新加载视图
- AngularJs的$scope变量在控制器加载时初始化较晚
- $Scope.$Apply()在加载数据到Angular-Ui-Grid后返回一个圆形错误
- 在服务场景中,在页面加载时设置$scope值的正确方法是什么?
- Angular.js $scope.on()在页面加载时没有捕捉到第一个广播
- 当使用angular $scope.$watch触发时,未被jmpress加载的元素的坐标和旋转
- 在AngularJS应用程序页面加载时执行SharePoint函数($scope issue??)