- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我决定将现有的 Angular 2 应用程序集成到我的 Django REST 项目中。
为我的前端创建带有静态文件夹的 Django 应用程序:
urls.py:
from django.conf.urls import url
from frontend import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^$', views.index, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
views.py:
from django.shortcuts import render
def index(request):
"""
Renders the Angular2 SPA
"""
return render(request, template_name='index.html')
将我的 Angular 2 应用移至前端静态文件夹
在我的设置中添加静态设置:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'frontend', 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
修改 index.html:
<html>
<head>
<base href="/">
<title>PhotoHub</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% load staticfiles %}
<link rel="stylesheet" href="{% static "node_modules/bootstrap/dist/css/bootstrap.min.css" %}">
<link href="{% static "bower_components/font-awesome/css/font-awesome.min.css" %}" rel="stylesheet" />
<link href="{% static "bower_components/alertify.js/themes/alertify.core.css" %}" rel="stylesheet" />
<link href="{% static "bower_components/alertify.js/themes/alertify.bootstrap.css" %}" rel="stylesheet" />
<link rel="stylesheet" href="{% static "styles.css" %}">
<script src="{% static "bower_components/jquery/dist/jquery.min.js" %}"></script>
<script src="{% static "node_modules/bootstrap/dist/js/bootstrap.min.js" %}"></script>
<script src="{% static "bower_components/alertify.js/lib/alertify.min.js" %}"></script>
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="{% static "node_modules/core-js/client/shim.min.js" %}"></script>
<script src="{% static "node_modules/zone.js/dist/zone.js" %}"></script>
<script src="{% static "node_modules/reflect-metadata/Reflect.js" %}"></script>
<script src="{% static "node_modules/systemjs/dist/system.src.js" %}"></script>
<!-- 2. Configure SystemJS -->
<script src="{% static "systemjs.config.js" %}"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
</head>
<!-- 3. Display the application -->
<body>
<photohub></photohub>
</body>
</html>
在 systemjs.config.js
中进行更改:
(function (global) {
System.config({
//static
defaultJSExtensions: true,
paths: {
// paths serve as alias
'npm:': 'static/node_modules/'
},
// map tells the System loader where to look for things
map: {
app: 'static/dist',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
},
'angular-in-memory-web-api': {
main: './index.js',
defaultExtension: 'js'
}
}
});
})(this);
TypeScript 文件在 /dist
中编译,模板保留在 /app
中。当我使用两个不同的服务器时,templateUrl
的路径如下所示:
templateUrl: './app/app.component.html'
现在我正尝试以这种方式声明 templateUrl
,但它不起作用:
templateUrl: '{{ STATIC_URL }}' + '/app/app.component.html'
现在如何处理模板 url?
响应:
"GET /app/components/login/login.component.html HTTP/1.1" 404 2601
Not Found: /app/app.component.html
JavaScript 文件加载良好:
"GET /app/components/login/login.component.html HTTP/1.1" 404 2601
Not Found: /app/components/register/register.component.html
最佳答案
这个解决的问题:
templateUrl: 'static/app/app.component.html'
关于python - Django 和 Angular 2 templateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40202622/
我是 AngularJs 的新手。我正在编写我的自定义 angular 指令,其中包含一些 html 内容的模板。当我使用带有以下代码的模板时,它工作正常。 demoApp.directive('de
我的 AngularJS 路由有问题:我没有得到任何页面反馈。没有错误或 View 切换。 我检查了模块的实现,但它以正确的方式声明。然后我搜索了诸如templateURL之类的错别字。 ,但我没有找
当 templateUrl 分配给指向 Controller 的路由时导致 404 错误或 500 错误时,有谁知道如何在 AngularJS 中捕获错误?当发生故障时,我在控制台中看到了问题,但我似
刚接触 angular,在过去一个小时左右的时间里,我一直在处理什么应该是一个简单的指令时遇到问题。真的很感激一些帮助! 我相信你好应该出现,似乎无法让它工作? 测试.html
我正在处理一组 Angular 指令,我想根据属性的存在或值加载正确的模板。 如果是水平的,templateUrl 应该是 /partials/horizontal-form和 如果是垂直的,
标题组件 import { Component } from "angular2/core"; @Component({ selector: "header-component", t
这个问题已经有答案了: Dynamic template URLs in Angular 2 (10 个回答) 已关闭 6 年前。 我想知道是否可以制作templateUrl取决于ifelse . i
我有一个如下所示的 html 元素: 我想让我的指令根据 type 是什么使用不同的 templateUrl。 appDirectives.directive('newElement', funct
这是我的自定义指令 centraApp.directive('counter', function () { return { restrict: 'A', s
我真的需要解决以下问题的帮助: 我尝试实现应用程序的一些设置,因此我想使用UI-Bootstrap Accordion 。 我有以下HTML代码: “ Acc
我按照 angular.io 入门项目使用种子结构。到目前为止一切正常。 现在我想更改顶部组件以从单独的文件中获取 View ,但我遇到了麻烦。工作代码是: import {Component, Vi
我正在尝试在 Angular js 2 中使用以下代码加载 Html 文件。该文件位于产品文件夹下,我尝试加载的 html 文件也在同一文件夹中。仍然无法正常工作。 import {Component
我目前正在声明相对于当前窗口位置的 templateUrl。 cvApp.directive('personalDetails', function () { return {
是否可以将范围读入指令的 templateUrl 中? 我想做这样的事情: mDirective.directive('directive', [function () { return {
这是我的指令代码: // Generated by CoffeeScript 1.6.3 (function() { var autumnDirectives; autumnDirective
我有两个指令,我试图在另一个指令的 templateUrl 中使用某个属性调用一个指令,但我无法在第二个指令中获取已编译的属性值。代码是这样的: 第一个指令 app.directive('myDir'
考虑代码(Angular 1.2 RC3): main.config(['$routeProvider', '$sce', function($routeProvider, $sce) { $
我正在本地开发一个单页应用程序。 我似乎无法使用 Angularjs 中的简单自定义指令将 HTML 文件加载为模板。如果我尝试使用 使用原始 html template: 属性,它工作得很好,但我有
我似乎无法使用 angularjs 路由加载 templateUrl。 使用 django 和 angularjs。 我所做的就是转到 127.0.0.1:8000/phones/,它会将我重定向到
该模板甚至似乎没有被请求。我尝试了绝对 URL、相对 URL,甚至全长 URL。 我已经检查过,根本没有请求该模板。 这是代码: app.directive('field', function ()
我是一名优秀的程序员,十分优秀!