Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add SpaServices with ASP.NET Core doc #3563

Merged
merged 23 commits into from
Jun 30, 2017
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c46eee1
Initial commit for revised SpaServices doc
scottaddie Jun 20, 2017
f5c1ff8
Add Tag Helpers text and code
scottaddie Jun 20, 2017
d14aa67
Add screenshot of global postList variable
scottaddie Jun 20, 2017
04d665c
Restore Tag Helpers code sample to original state
scottaddie Jun 20, 2017
04df38b
Adjust Tag Helpers heading styles
scottaddie Jun 20, 2017
4fcb40f
Add Webpack Dev Middleware code and text
scottaddie Jun 21, 2017
b54230f
Reorganize headings and start to HMR content
scottaddie Jun 21, 2017
0585a5a
HMR changes
scottaddie Jun 21, 2017
a7cb255
Additional tweaks to content
scottaddie Jun 22, 2017
0fe0da0
Add HMR screenshot and finish SpaServices prereqs section
scottaddie Jun 22, 2017
671530c
Start to project creation content for .NET Core CLI
scottaddie Jun 22, 2017
35fc763
Add Karma / Jasmine testing content
scottaddie Jun 22, 2017
b351dc8
More minor tweaks
scottaddie Jun 22, 2017
82aab44
Refine existing content
scottaddie Jun 23, 2017
37f1da2
Remove unused Tag Helper from Index view
scottaddie Jun 23, 2017
dbfd8c5
Update TOC
scottaddie Jun 23, 2017
8cb4185
Start publishing section of content
scottaddie Jun 23, 2017
f8770d1
Finish writing publishing section of content
scottaddie Jun 23, 2017
e3746b0
Remove original, unused images
scottaddie Jun 23, 2017
f93b7f1
Replace future tense usage
scottaddie Jun 23, 2017
573272c
Update spa-services.md
Rick-Anderson Jun 23, 2017
bc665a3
Implement suggestions from Tom and Rick
scottaddie Jun 27, 2017
170da91
Implement suggestions from Damien
scottaddie Jun 28, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion aspnetcore/client-side/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ ms.prod: asp.net-core
- [Manage client-side packages with Bower](bower.md)
- [Building beautiful, responsive sites with Bootstrap](bootstrap.md)
- [Knockout.js MVVM Framework](knockout.md)
- [Using AngularJS for Single Page Applications (SPAs)](angular.md)
- [Using AngularJS for Single Page Apps (SPAs)](angular.md)
- [Using SpaServices for Single Page Apps (SPAs)](spa-services.md)
- [Styling applications with Less, Sass, and Font Awesome](less-sass-fa.md)
- [Bundling and minification](bundling-and-minification.md)
- [TypeScript](https://www.typescriptlang.org/docs/handbook/asp-net-core.html)
Expand Down
328 changes: 328 additions & 0 deletions aspnetcore/client-side/spa-services.md

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,237 @@
/Properties/launchSettings.json

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
bin/
Bin/
obj/
Obj/

# Visual Studio 2015 cache/options directory
.vs/
/wwwroot/dist/
/ClientApp/dist/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Microsoft Azure ApplicationInsights config file
ApplicationInsights.config

# Windows Store app package directory
AppPackages/
BundleArtifacts/

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
orleans.codegen.cs

/node_modules

/yarn.lock

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe

# FAKE - F# Make
.fake/
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { sharedConfig } from './app.module.shared';

@NgModule({
bootstrap: sharedConfig.bootstrap,
declarations: sharedConfig.declarations,
imports: [
BrowserModule,
FormsModule,
HttpModule,
...sharedConfig.imports
],
providers: [
{ provide: 'ORIGIN_URL', useValue: location.origin }
]
})
export class AppModule {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { ServerModule } from '@angular/platform-server';
import { sharedConfig } from './app.module.shared';

@NgModule({
bootstrap: sharedConfig.bootstrap,
declarations: sharedConfig.declarations,
imports: [
ServerModule,
...sharedConfig.imports
]
})
export class AppModule {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

import { AppComponent } from './components/app/app.component'
import { NavMenuComponent } from './components/navmenu/navmenu.component';
import { HomeComponent } from './components/home/home.component';
import { FetchDataComponent } from './components/fetchdata/fetchdata.component';
import { CounterComponent } from './components/counter/counter.component';
import { BlogComponent } from './components/blog/blog.component';
import { PostComponent } from './components/post/post.component';

export const sharedConfig: NgModule = {
bootstrap: [ AppComponent ],
declarations: [
AppComponent,
NavMenuComponent,
CounterComponent,
FetchDataComponent,
HomeComponent,
BlogComponent,
PostComponent
],
imports: [
RouterModule.forRoot([
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'counter', component: CounterComponent },
{ path: 'fetch-data', component: FetchDataComponent },
{ path: 'blog', component: BlogComponent },
{ path: 'blog/:id', component: PostComponent },
{ path: '**', redirectTo: 'home' }
])
]
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@media (max-width: 767px) {
/* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */
.body-content {
padding-top: 50px;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<div class='container-fluid'>
<div class='row'>
<div class='col-sm-3'>
<nav-menu></nav-menu>
</div>
<div class='col-sm-9 body-content'>
<router-outlet></router-outlet>
</div>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Component } from '@angular/core';

@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<h1>Blogs</h1>

<p *ngIf="!blogs"><em>Loading...</em></p>

<table class='table' *ngIf="blogs">
<thead>
<tr>
<td>Title</td>
<th>Url</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let blog of blogs">
<td><a [routerLink]="['/blog', blog.blogId]">{{ blog.title }}</a></td>
<td>{{ blog.url }}</td>
</tr>
</tbody>
</table>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { Component } from '@angular/core';
import { Http } from '@angular/http';

@Component({
selector: 'blog',
templateUrl: './blog.component.html'
})
export class BlogComponent {
public blogs: Blog[];

constructor(http: Http) {
http.get('/api/blogs').subscribe(result => {
this.blogs = result.json() as Blog[];
});
}
}

interface Blog {
blogId: number;
title: string;
url: string;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<h1>Counter</h1>

<p>This is a simple example of an Angular component.</p>

<p>Current count: <strong>{{ currentCount }}</strong></p>

<button (click)="incrementCounter()">Increment</button>
Loading