我试图将$ http返回的数据共享给另一个控制器。
$scope.getClickData=function(dataId){
var postData={"containerInstanceId" : "3842a251-1708-4df0-b941-db27a03d91ab","fetchMetadata":true,"parameters":{"#{organizationTypeID}":"abf1c91f-fea8-4033-a731-136c339525c7"}};
$http.post('http://latest.tapplent.info/api/app/layouts/v1/container-instance/data',postData).
success(function(data, status, headers, config) {
$scope.data=data;
console.log(data.containerData[0].propertyData.NULL[0].organizationTypeName.value);
}).
error(function(data, status, headers, config) {
console.log("error");
});
}
});
app.controller('webView', ['$scope', function($scope) {
console.log($scope.data);
}]),
如何将数据传输到webview控制器。请帮助我的朋友我该如何解决这个问题。
提前致谢。
答案 0 :(得分:3)
以三种方式。
1。)您可以使用Angular工厂/服务。
myApp.factory('unicornLauncher', ["apiToken", function(apiToken) {
return new UnicornLauncher(apiToken);
}]);
https://docs.angularjs.org/guide/providers
2。)使用广播和发射。
您可以通过$broadcast
或$Emit
分享数据,然后通过$on
在任何控制器中捕获这些数据。
https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope
由于性能原因,我更喜欢Angular工厂/服务而不是广播/发射。
3.)或者您可以使用$ rootscope。但这是最不受欢迎的,因为根镜是您的全球范围。你不应该浪费你的全球范围。
答案 1 :(得分:1)
最简单的方法是将数据写入rootScope。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
// Remove the row from data model
[listOfAllOpenChats removeObjectAtIndex:indexPath.row];
[tableView reloadData];
}
更好的方法是使用方法将$ http调用包装在一个服务中,以执行调用并检索数据并将其注入到两个控制器中。
答案 2 :(得分:1)
<强> controller1.js 强>
来自 controller1 只需将 dataId 传递给 controller2 , controller2 将包含将带来数据和填充的请求代码在范围内。$scope.onButtonClick = function () {
$location.url('/controller2?dataId='+33);
//$scope.getClickData=function(dataId){}); add this func to controller2.js
}
controller1.js中的此代码将
将小dataId传递给其他controller2.js
还可以导航到其他controller2.js
<强> controller2.js 强>
app.controller('controller2', function($scope, $location)
{
var ID = $location.search();
$scope.getClickData=function(ID.dataId){
//REQUEST YOUR DATA
});
});
注意:我们删除(request / angular promise)getClickData()函数 来自controller1.js并将其添加到controller2.js。这样做 controller2将负责自己的数据控制器2不必 取决于controller1的数据