国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python - angular route 與 django urls 沖突怎么解決?

瀏覽:136日期:2022-08-06 13:58:49

問題描述

app.js

var app = angular.module(’app’, [ ’ngResource’, ’ngRoute’, // ’ui.bootstrap’, // ’ngResource’, ’student’,]);app.config(function( $locationProvider, $routeProvider ){ $locationProvider.html5Mode({ enabled:true }) $routeProvider. when('/', {template: ’base’, }). when('/student/1', {template: '<student-detail></student-detail>', }). otherwise({template: 'Not Found' }) });

student.js

var app = angular.module(’student’, []);app.component(’studentDetail’,{templateUrl:’studentDetail.html’,controller: function($scope) {$scope.test = ’Got it.’} });

urls.py

class SimpleStaticView(TemplateView): def get_template_names(self):return [self.kwargs.get(’template_name’) + '.html']urlpatterns = [ url(r’^admin/’, include(admin.site.urls)), url(r’^api/’, include('students.api.urls', namespace=’students-api’)), url(r’^(?P<template_name>w+)$’, SimpleStaticView.as_view(), name=’example’), url(r’^$’, TemplateView.as_view(template_name=’home.html’)),]if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

測試,當訪問/,base字段是出現的,說明ng-view工作 正常,但當訪問/students/1時,返回django路由報錯,未找到該路由。

studentDetail.html是存在的。

這是angular沒獲取到路由請求嗎?該如何解決?謝謝。

問題解答

回答1:

謝邀,推薦你先看一下這篇文章 - 單頁應用的核心

開發調試時,你可以使用開發者工具,查看一下模板請求的實際路徑,另外Django 路由配置,你只要能匹配模板請求地址,正確返回模板文件即可。Angular 1.x 前端部分請參考以下示例:

Angular 1.x Demo 項目目錄結構python - angular route 與 django urls 沖突怎么解決?

views/student.module.js

var studentModule = angular.module(’student’, []);studentModule.component(’studentDetail’,{ templateUrl:’views/studentDetail.html’, // 注意這邊的路徑,相對于根目錄 controller: function($scope) {$scope.test = ’Got it.’ }});

views/studentDetail.html

<h4>{{test}}</h4>

index.html

<!DOCTYPE html><html><head> <meta charset='UTF-8'> <title>Angular 1.x Demo</title> <base href='http://www.cgvv.com.cn/' > <!--需根據部署后的實際路徑做調整--> <script src='https://cdn.bootcss.com/angular.js/1.6.3/angular.min.js'></script> <script src='https://cdn.bootcss.com/angular.js/1.6.3/angular-route.min.js'></script> <script src='http://www.cgvv.com.cn/wenda/views/student.module.js'></script></head><body ng-app='app'><p> <a href='http://www.cgvv.com.cn/student'>Student</a></p><p ng-view></p><script type='text/javascript'> var app = angular.module(’app’, [’ngRoute’,’student’, ]); app.config( function( $locationProvider, $routeProvider ){$locationProvider.html5Mode({ enabled:true});$routeProvider.when('/', { template: ’base’,}).when('/student', { template: '<student-detail></student-detail>',}).otherwise({ template: 'Not Found'}) });</script></body></html>

建議如果新項目使用 Angular 1.x 都要不要再使用$scope哈,好處有很多,其中一點是方便以后升級遷移,開發語言可以考慮使用 ES6 或 TypeScript。組件示例如下:

const counter = { bindings: { count: ’<’ }, controller() { this.increment = () => this.count++; this.decrement = () => this.count--; }, template: ` <p> <button ng-click='$ctrl.decrement()'>-</button> <input ng-model='$ctrl.count'> <button ng-click='$ctrl.increment()'>+</button> </p> `};angular .module(’app’) .component(’counter’, counter);

詳細可以參考,component-property-binding-input-angular-2

另外如果有興趣的話或項目允許的話,可以考慮一下使用新版的Angular,當前最新的版本是4.0.1哈

友情提示(題主請略過):本示例需要啟本地服務器哈,如果有安裝Python的話,可以在命令行運行 python -m SimpleHTTPServer

參考資料

Angularjs html5mode模式路由

angular路由去掉的URL里的#號

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚色网站 | 国产一区二区三区不卡在线观看 | 亚洲精品日本高清中文字幕 | 免费一级欧美片在线观看 | 久久99国产亚洲高清观看韩国 | 亚洲精品一区二三区在线观看 | 亚洲国产精品第一区二区 | 日本一区二区三区欧美在线观看 | 香蕉视频亚洲一级 | 免费观看性欧美大片无片 | 精品一久久香蕉国产线看播放 | 成人国产在线视频在线观看 | 手机国产精品一区二区 | 色伦网| 国产精品免费视频一区二区三区 | 欧美日韩亚洲一区二区三区在线观看 | 亚洲人成亚洲人成在线观看 | 国产精品亚欧美一区二区三区 | 亚洲天堂网在线播放 | 中文字幕精品在线 | 亚洲一区二区视频 | 扒开两腿猛进入爽爽视频 | 国内一区| 亚洲一区二区视频 | 免费的特黄特色大片在线观看 | 麻豆影音 | 日韩不卡在线观看 | www.日本免费 | 精品精品国产自在久久高清 | 久久综合伊人77777 | 91社区视频 | 成人公开免费视频 | 国产精品白浆流出视频 | 爽爽日本在线视频免费 | 九九色视频在线观看 | 一区二区精品在线观看 | 毛片在线高清免费观看 | 一级毛片在线视频 | 欧美一级久久 | 国产亚洲精品成人a在线 | 国产精品欧美一区二区三区不卡 |