我倾向于 Angular 的路线。很清楚如何通过简单的设置将视图加载到 ng-view 中template属性。
假设我在视图上有一个小部件。当用户导航到 /#/changeWidget 时,如何仅替换小部件内容?
在我看来,我只能使用单个ng-view
主要.html
<div ng-app="payment">
<div ng-view></div>
</div>
js
var app = angular.module("payment",["ngRoute"]);
function listController($scope) {
}
app.config(function($routeProvider, $locationProvider){
$routeProvider.when('/list', {
templateUrl: 'templates/list.html',
controller: listController
}).
when('/chagneWidget', {
templateUrl: 'templates/widget2.html',
controller: widget2Controller
}).
otherwise({
redirectTo: '/list'
});
});
所以基本上,当'/changeWidget'被触发时,我只想替换一个div列表.html
是否可以使用路由器或者我应该做... ajax 调用并操作 DOM?
我不认为是easily可能有角度router
——老实说,这是它的一个很大的限制。但是,嘿,有一个非常漂亮且流行的模块提供了这种可能性:用户界面路由器 https://github.com/angular-ui/ui-router。如果您不阅读文档:
警告:UI-Router 是预测试版,正在积极开发中。因此,虽然该库已经过充分测试,但 API 可能会发生变化。不建议在需要保证稳定性的项目中使用。
真的有必要通过改变路线来更新小部件吗?如果没有,有很多选择可以以角度来实现。如果你确实需要改变路线,你可以使用这个技巧:
$scope.$on("$locationChangeStart", function (event, next, current) {
if (next == 'your_domanin/your_specific_url') {
setTimeout(function() {
$window.history.pushState("object or string",
"Title", '/your_specific_url')},20);
event.preventDefault();
// ... update your view
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)