Articles of angularjs

angular色2等效的renderToString

我正在寻找相当于react-dom/server.renderToString的angular度2 import { renderToString } from 'react-dom/server'; // Render the component to a string const html = renderToString( <App /> ); 使用NodeJs将指令/组件转换为HTML的最简单代码示例是什么? 我想这应该是可能的这些包之一: @ angular / compiler – v2.0.0-rc.2 @ angular / platform-server – v2.0.0-rc.2

Angular4 + Universal + ng-bootstrap导致“意外令牌导入”错误

所以我升级到了angular度4+,这样我就可以利用通用包进行服务器端渲染,以达到search引擎优化的目的。 我通过将其升级到angular度4+,并在https://github.com/evertonrobertoauler/cli-universal-demo/commit/a2610286bd3db5d4f4cce4318d7c220c11963eb6中完成了所有必要的configuration,在我现有的angular 2+项目中实现了该项目。 只有一个区别我正在使用ng-bootstrap https://ng-bootstrap.github.io/#/home(v1.0.0-alpha.22 )。 但是当我使用npm运行start-u-dev运行节点服务器时,我在ng-bootstrap中得到了导入关键字的这个错误。 app-ui@0.0.0 start-u-dev /Users/giric/Projects/apnaDoctor/webapp/appUI ts-node src/server.ts /appUI/node_modules/@ng-bootstrap/ng-bootstrap/accordion/accordion.module.js:1 (function (exports, require, module, __filename, __dirname) { import { NgModule } from '@angular/core'; ^^^^^^ SyntaxError: Unexpected token import at createScript (vm.js:53:10) at Object.runInThisContext (vm.js:95:10) at Module._compile (module.js:543:28) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.require (module.js:498:17) […]

NodeJS:在客户端存储JWT的地方? sessionStorage,localStorage还是cookies?

使用NodeJS和(例如)AngularJS在SPA上存储用于身份validation的JSON Web令牌的最佳位置是什么? 我到目前为止: 可能的地方: HTML5 Web存储(localStorage / sessionStorage) cookies Web存储(localStorage / sessionStorage)可以通过JavaScript访问同一个域。 这意味着您网站上运行的任何JavaScript都将有权访问Web存储,因此可能容易受到跨站点脚本(XSS)攻击的影响。 localStorage具有不同的到期时间, sessionStorage只能在创build它的窗口打开时访问。 localStorage会一直持续到您删除它或用户删除它。 Cookie与HttpOnly Cookie标志一起使用时,不能通过JavaScript访问,并且对XSS不起作用。 但是,Cookie容易受到跨站请求伪造(CSRF)的影响。 那么存储智威汤逊的最安全的方法是什么?

在服务器上configuration心跳超时,心跳间隔和closures超时

我有一个node.js服务器,我使用socket.io来实现服务器和客户端之间的实时通信。 我观察到,如果一个移动客户端(使用Ionic Framework)突然断开连接,而不让服务器知道它,那么这个套接字就会活着几个小时(或永远)。 我已阅读并查看他们的文档,他们有像pingInterval, pingtimeout, heartbeat interval, heartbeat timeout, close timeout 。 如何在我的服务器上configuration这些值? 以下哪些值已被弃用? 这是我的代码。 var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); io.set('heartbeat interval', 5000); io.set('heartbeat timeout', 8000); io.set('timeout', 5000); io.on('connection', function(socket){…} 这些似乎都没有工作。 任何帮助或指导,高度赞赏。 PS:当客户端断开连接时,我正在拼接我的集合的套接字,当客户端告诉服务器他们想要正常断开连接时,它正常工作。

在Angular JS Module中传递和获取DOM元素值

我是Angular JS的新手 我有一个HTML页面,加载这样一个JS文件 <script type="text/javascript" src="components/adf-widget-iframe/dist/adf-widget-iframe.min.js"></script> 该文件(adf-widget-iframe.min.js)内容如下 ! function() { "use strict"; angular.module("adf.widget.iframe", ["adf.provider"]).config(["dashboardProvider", function(e) { e.widget("iframe", { title: "iframe", description: "Embed an external page into the dashboard", templateUrl: "{widgetsPath}/iframe/src/view.html", controller: "iframeController", controllerAs: "iframe", edit: { templateUrl: "{widgetsPath}/iframe/src/edit.html" }, config: { height: "420px" } }) }]).controller("iframeController", ["$sce", "config", function(e, r) { r.url && (this.url = […]

从variables值dynamic设置ng-controller

我正在开发一个应用程序使用angularJs和nodejs。 我把控制器的名字设置为主控制器的variables的值。 为了更好地解释它,我的index.html如下所示: <tbody ng-repeat="group in groups"> <tr ng-repeat="member in group.members" > <td rowspan="{{group.members.length}}" ng-hide="$index>=0"> </td> <td>{{member.taskName}}</td> <td><div class={{group.colorMe[0]}}>{{member.env}}</div> <button class="btn btn-info" ng-controller="member.taskName" ng-click="test( member.taskName , 'env', group.colorMe[0])">Sanity</button> </td> 而我的主控制器看起来像这样的组定义如下: var tasks =['task1','task2','task3','task4','task5']; for(i=0;i<tasks.length;i++) { var group = { "id" : i+1, "members" : [{ "taskName":tasks[i].toUpperCase(), "env1":versionMap["env1"+tasks[i]], "env2":versionMap["env2"+tasks[i]], "env3":versionMap["env3"+tasks[i]] }] }; $scope.groups.push(group); } 现在,当我点击button,我应该直接到一个特定的控制器,这个控制器名称需要dynamic设置为member.taskName。 有人可以帮我这个吗?

AngularJS上传文件并发送给数据库

我一直试图让ngFileUpload工作,以便我可以上传图像,并将它们发送到DB – 在我的情况下,一个mongoLab数据库接受JSON对象,可以用这样的语法POST : $http.post('myMongoName/myDb/myCollection/myTable', {'key': 'value'}) 相当简单。 然而,我很困惑如何发送使用ngFileUpload上传到数据库的图像。 我在ngFileUpload的文档页面上使用了熟悉的语法: $scope.upload = function (files) { if (files && files.length) { for (var i = 0; i < files.length; i++) { var file = files[i]; console.log(file); Upload.upload({ url: myMongoLabURL, fields: {'sup': 'sup'}, file: file }) }).success(function (data, status, headers, config) { console.log('file ' + config.file.name + […]

Angular 2.0深度链接不起作用。 地址栏也一样

一切工作正常,当我build立和导航应用程序中的链接,但在地址栏中键入不! 最终,我希望能够通过电子邮件发送链接到特定的应用程序页面/path,我不知道如何实现。 我遵循了angular度路由器指南文档 。 我正确地认为… 我使用NodeJS(与快递),并在服务器中,我已经redirect到应用程序根的所有stream量。 app.get("*", function(req, res) { console.error("in get *") res.redirect("/"); }); 在我的index.html中我已经设置了基地 <base href="/"> 我有我的客户端path/path设置如下 const appRoutes: Routes = [ { path: 'vendor/registration', component: VendorRegistrationComponent }, { path: 'vendors', component: VendorListComponent }, { path: '', redirectTo: 'vendor/registration', pathMatch: 'full' }, { path: '**', component: PageNotFoundComponent } ]; 如果我在浏览器地址栏中键入http://localhost:8080/vendors ,则可以访问http://localhost:8080/vendor/registration ,这是有道理的,因为这是服务器告诉浏览器redirect到的地方。 那么我应该如何深入链接到我的应用程序? […]

Angular Ui-Router在使用node.js时不是路由

我正在使用angular度ui路由器。 路由器似乎在主页index.html上完美工作。 但是任何其他导航不起作用。 这是我的stateproviderangular: var app = angular.module('myApp', ['ui.router']); app.config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise("/"); $stateProvider .state("home", { url: "/", templateUrl: "../partials/home/index.html" }) .state("login", { url:"/login", templateUrl: "../partials/account/login.html" }) .state("register", { url: "/register", templateUrl: "../partials/account/register.html" }) .state("values", { url: "/values", templateUrl: "../partials/test/values.html" }) ; }); HTML在我的主index.html: <!–Content –> <div class="container"> <div ui-view></div> </div> <!– END Content –> […]

AngularJS持续部署工具

我一直在尝试使用Codeship和Heroku来连续部署我正在编写的AngularJS应用程序。 该应用程序使用Yeoman创build,并使用凉亭和咕噜声。 起初,我认为这看起来像一个非常好的设置Codeship是免费使用,我很快就能够configuration这个来build立我的AngularJS项目,并提供了在构build后添加部署步骤的能力。 甚至有很多PaaS供应商可供select(Heroku,S3,Google App Engine等)。 但是,我似乎已经成为一个让Heroku上运行的应用程序卡住了。 问题出在这样的事实,即所有的文档都build议我从.gitignore删除/distpath,以便将这个目录发布到Heroku后期构build中。 这主要是从本地机器上谈到向Heroku发布的文档,但是我认为这是所有Codeship正在引擎盖下进行的。 我不想这样做,因为我不相信我应该检查生成输出到源代码pipe理。 /dist文件夹被添加到.gitignore有一个很好的理由。 而且,这种有点让人失望的CI服务器,不如从我的机器上推出最新的版本。 经过一些更多的挖掘后,我发现我可以添加一个postinstall步骤到我的packages.json文件中,例如bower install && grunt build ,它将重新运行Heroku上的构build,从而重新填充所有的bower依赖项(他们想要的其他东西检查源代码pipe理!)和dist目录。 给了这个尝试后,显然我需要在packages.json添加bower和grunt作为依赖关系,这意味着将它们从devDependencies移动到它们应该属于的地方! 所以我现在好像被卡住了 我想要做的就是发布我的构build文物( /dist )依赖项( /bower_components )和将运行该站点的server.js文件。 有没有人知道如何用Heroku和Codeship实现这一点? 或者有人使用不同的工具有任何成功。 我正在寻找一些免费的,我愿意接受,它不会生产稳定(不会扩展到多个服务器等),但现在这是好的,因为我想要做的就是不断地部署应用程序内部testing,并能够与我的团队的非技术成员分享输出,所以我们可以讨论我们想优先考虑的function等。 任何build议将不胜感激。 谢谢