@section语法而不是requirejs或browserify为angularjs应用

问题描述 投票:1回答:1

据我所知,requirejsbrowserify可以载入我的文件取决于其当前上下文,并且它是惊人的。我真的很喜欢使用的剃刀引擎使用@section sections语法。只是不知道是否有落实到一个打字稿/ angularjs应用这种方式。

例如

的index.html

 @renderSection scripts; 
 // which could turn into something like
 <script data-render="scripts"></scripts>
 // the app.run() could declare all the scripts that will be needed on every        
 // page view

view.html

<script ng-section-repeat="injected in injection"></script> 
// the ng-section-repeat is basically taking all the items in the 
// typescript constructor and then finding out which ones are needed for
// that view.

我喜欢这个主意,视图注入应用程序文件的依赖性,没有一个配置文件和所有可以额外附带的装载机。

我只是想简单地定义需要什么样的文件,在实际的视图,并让他们加载,具有角的依赖注入处理的依赖本身。

如果您正在处理所有的依赖性与$inject那么,据我所知,依赖在技术上已经在控制器的设置,所有的人会需要的,是因为它是所谓加载此。这甚至可以消除对@section scripts需要完全

更新:我做了什么,以某种复制模块加载器是只使用gulp-concat和我gulp.config.js定义文件顺序,然后运行gulp-src。这之前它传递给$.concat让我有在吞气蒸汽中的文件,在为了依赖。然而,他们被装载在第一负载。随着gulp-uglify文件是微小(其现在566KB在69ms装载16个外部库。为了它放入角度来看,它需要209ms加载一个谷歌字体)。

我不知道,也许我不理解browserify正确,但老实说,我很难看到它的需要,它似乎是这么简单的东西非常令人费解

angularjs typescript loader
1个回答
0
投票

它使用外部组件和注射器做你问什么是可能的:

我只是想简单地定义都需要在实际的观点是什么文件

import {UserFactory} from 'models/userFactory';
import {UserValidator} from 'models/userValidator';
import {Inject} from 'angular2/di';

并让他们加载,具有角的依赖注入处理的依赖本身。

注:我的示例使用的角度2.x的,因为我不太熟悉的角度1.x的我敢肯定,你可以做真正类似的东西...

class SomeComponent {

  userName: string;
  userRating: number;
  rating: number;

  constructor(
    @Inject(UserFactory) UserFactory
    @Inject(UserValidator) UserValidator
  ) 
  {
    this.UserFactory = UserFactory;
    this.UserValidator = UserValidator;
  }
}

然后你可以使用Browserify创建可以在Web浏览器中执行的bundle.js文件。

© www.soinside.com 2019 - 2024. All rights reserved.