Как отобразить вывод функции в контроллере для вложенного представления в angularjs
У меня есть родительский взгляд index.html
<html>
<head>
<script src = "assets/js/angular.min.js"></script>
<script src = "../lib/js/angular-ui/angular-ui-router.js"></script>
<script src = "app.js"></script>
<script src = "controllers/profile/ProfileController.js"></script>
</head>
<body ng-app="myApp">
<div class="links">
<div class='profile'><a ui-sref="profile">Profile</a></div>
<div class='dashboard'><a ui-sref="dashboard">Dashboard</a></div>
</div>
<div class="container">
<div ui-view></div>
</div>
</body>
</html>
В app.js
var app = angular.module('myApp',['ui.router']);
app.config(['$stateProvider', '$urlRouterProvider',function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('profile', {
url: "modules/profile/templates",
templateUrl: "modules/profile/templates/profile.html",
controller: 'ProfileController'
}).state('dashboard', {
url: "modules/dashboard/templates",
templateUrl: "modules/dashboard/templates/index.html"
}).state('profile.viewprofile', {
url: "modules/profile/templates",
templateUrl: "modules/profile/templates/viewprofile.html",
controller: 'ProfileController'
}).state('profile.createprofile', {
url: "modules/profile/templates",
templateUrl: "modules/profile/templates/createprofile.html",
controller: 'ProfileController'
});;
} ]);
Это мое profile.html
<div >
<div class="links">
<h3 class="heading">Profile</h3>
<div class='viewprofile'><a ui-sref="profile.viewprofile">View Profile</a></div>
<div class='createprofile'><a ui-sref="profile.createprofile">Create Profile</a></div>
<div class='editprofile'><a ui-sref="profile.editprofile">Edit Profile</a></div>
</div>
<div class="content>
<div ui-view="profile.viewprofile@"></div>
<div ui-view="profile.createprofile@"></div>
</div>
</div>
в моем ProfileController
app.controller('ProfileController',function($scope, $http){
$scope.allProfiles = function(){
$http.get('objects/getallprofiles.php').success(function (data, status, headers, config) {
console.log(data);
});
}
В консоли данные отображаются
Array
(
[0] => Array
(
[id] => 1
[0] => 1
[fname] => sdds
[1] => sdds
[lname] => sddssd
[2] => sddssd
[mobile] => 333
[3] => 333
)
)
Когда я нажимаю на viewprofile
в profile.html
страница viewprofile.html
становится оказанным. Но я хочу получить значения функции allProfiles()
на взгляд ребенка viewprofile
и связать их с тегами HTML
Как я могу получить allProfiles()
выход функции, который находится в контроллере для дочернего представления viewprofile.html
1 ответ
Вы можете привязать данные внутри функции allProfile() к некоторой переменной rootScope. Как это:
$scope.allProfiles = function(){
$http.get('objects/getallprofiles.php').success(function (data, status, headers, config) {
$rootScope.profiles=data;
console.log(data);
});
И затем вы можете получить доступ к этой переменной в любом контроллере, который вы хотите, используя $rootScope.
Не забудьте ввести $ rootcope в котроллер.
Другой способ сделать это - сохранить данные в сервисе и внедрить сервис в контроллер, к которому вы хотите получить доступ к данным. Дайте мне знать, если нужен код для этого.