Uso AngularJS nella mia applicazione MVC e sto cercando di utilizzare il meglio di entrambi i mondi. Mi piace molto come in MVC puoi impostare la logica di convalida nei tuoi viewmodels e generare la convalida lato client con la convalida jQuery nelle tue visualizzazioni del rasoio con poco sforzo. Io uso AngularJS per ottenere il comportamento SPA con il routing, ecc, ma quando creo una vista rasoio che uso per iniettare in una pagina con: <div data-ng-view="data-ng-view"></div>
Utilizzo delle visualizzazioni del rasoio con convalida jQuery con angularJS
poi la convalida jQuery smette di funzionare, anche se i file di script è riferimenti su la pagina in cui viene iniettata la vista. Vedi sotto per mio punto di vista rasoio:
@model BandViewModel
<div data-ng-controller="App.BandCreateCtrl">
<form name="startBandForm">
@Html.ValidationSummary(true)
<br />
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name, new { data_ng_model = "band.Name" })
@Html.ValidationMessageFor(m => m.Name)
<br/>
<input data-ng-disabled="startBandForm.$invalid" type="submit" data-ng-click="createBand(band)" value="Create"/>
</form>
</div>
Come temevo ... grazie per l'ottima risposta :) Prenderò in considerazione il vostro feedback. – Arnstein
Personalmente ritengo che avere delle viste basate su Razor possa essere utile. Ad esempio, puoi posizionare @ Html.TextBoxFor (m => m.Name) e genererà il campo di input potenziato di AngularJS con tutti i suoi modelli ng, ng-richiesti e molti altri attributi che sono soggetti a errori a mano. La causa dell'utilizzo di ASP.NET MVC potrebbe essere un overkill ma è possibile utilizzare le pagine Web con la sintassi di Razor (.cshtml) al di fuori del contesto MVC, il progetto non avrà alcun riferimento a ASP.NET MVC. Dai un'occhiata ai seguenti progetti per gli esempi: http://github.com/kriasoft/angular-vs http://github.com/kriasoft/site-sdk –
Non sono affatto d'accordo. Io uso Razor templates * very * con successo con Angular, e ho tutti i miei template lato client fortemente digitati, che non otterresti con una semplice pagina HTML. È vero, il modello dell'OP non funzionerebbe, ma se crei i tuoi HtmlHelpers per lavorare con Angular, sei d'oro! –