将函数的返回传递到另一个状态
Passing return of function to another state
我一直在尝试将数据从一个控制器发送到另一个控制器。一个小背景,这是离子应用程序中使用的代码,如果有帮助的话。我希望将send()函数中的数据发送到SubCtrl。正在MainCtrl中调用send函数。我已经为此创建了一个服务,但数据仍然没有共享。要完成此操作,我缺少什么?
var app = angular.module('testapp', []);
app.config(function($stateProvider, $urlRouterProvider) {
"use strict";
/* Set up the states for the application's different sections. */
$stateProvider
.state('page2', {
name: 'page2',
url: '/page2',
templateUrl: 'page2.html',
controller: 'MainCtrl'
})
.state('page3', {
name: 'page3',
url: '/page3',
templateUrl: 'page3.html',
controller: 'SubCtrl'
});
$urlRouterProvider.otherwise('/page2');
});
app.factory('dataShare', function($rootScope) {
var service = {};
service.data = false;
service.sendData = function(data) {
this.data = data;
$rootScope.$broadcast('data_shared');
console.log(data);
};
service.getData = function() {
return this.data;
};
return service;
});
app.controller('MainCtrl', function($scope, $state, $http, dataShare) {
$scope.text = 'food';
$scope.send = function() {
dataShare.sendData(this.text);
};
});
app.controller('SubCtrl', function($scope, $state, dataShare) {
"use strict";
var sc = this;
$scope.text = '';
$scope.$on('data_shared', function() {
var text = dataShare.getData();
sc.text = dataShare.data;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script id="page2.html" type="text/ng-template">
<div>{text}}</div>
<input type='text' ng-model='text' />
<button class="button button-outline button-royal" ng-click="send();">add</button>
</script>
<script id="page3.html" type="text/ng-template">
<div>text: {{text}}</div>
</script>
在阅读本页后,我能够解决这个问题。如果有人有类似的问题,我会鼓励阅读。此外,这篇帖子上的视频链接也非常有用。
相关文章:
- 如何将JavaScript自动POST的状态代码获取到另一个域
- $stateParams,如何将值从一个状态传递到另一个状态
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 导航到另一个页面后,复选框状态会更改
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 如何从一个组件访问另一个组件的状态
- 如何将链接状态设置为在用户访问另一个页面之前保持
- 将函数的返回传递到另一个状态
- 使用AngularJS在ng重复中从一个状态到另一个状态制作动画
- 在AngularJS中切换编辑状态并更改项目'单击另一个函数
- 从另一个元素的行为更改按钮的状态
- 在iCheck的复选框选中和未选中状态下显示和隐藏另一个复选框
- JS弹出窗口打开并在另一个页面上检查其状态
- 反应如何更新另一个组件的状态
- 在同一元素上单击两次,然后在另一个元素上单击两次,使第一个元素进入“单击”状态
- ui路由器——具有一条路由'的URL与另一个具有$stateParams的状态共享同一级别
- reactJS在转到另一个URL时如何传递状态?(单击导航栏上的“新建”,转到提交表单)
- 使用angularjs,我如何根据同一表单中另一个输入标签的状态动态地将输入标签添加到表单中
- I'我是javascript新手;我不知道为什么它不会跳到另一个状态
- 需要帮助理解angular ui-router,特别是将mongodb数据从一个状态传递到另一个状态