我对angularjs比较新,看起来我在这里遗漏了一些明显的东西。我试图通过文档和教程,但无法找到解决问题的方法。
我在“localhost:8080 / app / rest / schools / {schoolId} / selectedindicators”上有一个REST服务。我可以在angularjs应用页面(selectedindicator.html)中显示结果,如下所示:
<tbody>
<tr ng-repeat="selectedindicator in selectedindicators">
<td>{{selectedindicator.id}}</td>
<td>{{selectedindicator.school.name}}</td>
<td>{{selectedindicator.userId}}</td>
<td>{{selectedindicator.dateVisit}}</td>
<td>
<button type="submit"
ng-click="update(selectedindicator.id)"
class="btn">
<span class="glyphicon glyphicon-pencil"></span> Edit
</button>
</td>
</tr>
</tbody>
在此之前一切正常。但是,当我尝试通过单击“编辑”按钮选择一个所选指标时,我无法在“编辑”(selectedindicatorForm.html)页面上显示数据。这是我的编辑页面的一部分。
<div>
<div class="form-group">
<label>ID</label> <input type="text" class="form-control" name="id"
ng-model="selectedindicator.id" required>
</div>
.
.
.
.
.
.
</div>
这是我的routeProvider代码:
myApp
.config(['$routeProvider', '$httpProvider', '$translateProvider',
function ($routeProvider, $httpProvider, $translateProvider) {
$routeProvider
.when('/selectedindicator', {
templateUrl: 'views/selectedindicators.html',
controller: 'SelectedIndicatorController',
resolve:{
resolvedSelectedIndicator: ['SelectedIndicator', function (SelectedIndicator) {
return SelectedIndicator.query();
}]
}
})
.when('/selectedindicatorForm',{
templateUrl: 'views/selectedindicatorForm.html',
controller: 'SelectedIndicatorFormController',
})
}]);
以下是更新方法的控制器代码:
myApp.controller('SelectedIndicatorController', ['$scope', '$location', '$route','resolvedSelectedIndicator', 'SelectedIndicator',
function ($scope, $location,$route, resolvedSelectedIndicator, SelectedIndicator) {
$scope.selectedindicators = resolvedSelectedIndicator;
$scope.update = function (id) {
$scope.selectedindicator = SelectedIndicator.get({id: id});
$location.path("/selectedindicatorForm");
};
}]);
答案 0 :(得分:1)
本视频教程应该有所帮助。试一试:https://www.youtube.com/watch?v=5uhZCc0j9RY&feature=youtu.be
答案 1 :(得分:0)
您可以添加单独的服务(单例对象)以在控制器之间传递数据。
看起来像SelectedIndicator
(传递到SelectedIndicatorController
)已经在做了,你可以简单地重复使用它。
在SelectedIndicatorFormController
注入此服务SelectedIndicator
并致电SelectedIndicator.get({id: id});
注意 - $scope.selectedindicator = SelectedIndicator.get({id: id});
内的这一行SelectedIndicatorController
看起来没有任何用途。
如果你可以设置一个插件,我可以帮助你。
答案 2 :(得分:0)
您是否有某些原因需要使用$ location.path进行转换?
我这样做的方式只是放一个或一个东西,一个类=&#34; btn&#34;或者其他一些css样式,如果你真的希望它看起来像一个按钮。使用常规ngRoute,您只需使用URL,并将所有状态放入URL。我非常确定设置一个$ scope变量,然后手动更改状态并没有实际执行任何操作,因为新状态有自己的$ scope。
在查看该代码之后,我要坦率地说,你可能会说你可能应该阅读一些有角度的教程。我发现egghead.io自己很棒。