标签: angularjs

如何防止锚标签的默认?

假设我有一个锚标记,例如

<a href="#" ng-click="do()">Click</a>
Run Code Online (Sandbox Code Playgroud)

如何防止浏览器导航到AngularJS中的#?

preventdefault angularjs

341
推荐指数
16
解决办法
27万
查看次数

在哪里放置模型数据和行为?[TL; 博士; 使用服务]

我正在与AngularJS合作完成我的最新项目.在文档和教程中,所有模型数据都放入控制器范围.我知道必须存在控制器,因此在相应的视图中.

但是,我不认为该模型应该在那里实施.它可能很复杂并且具有私有属性.此外,人们可能希望在另一个上下文/应用程序中重用它.将所有内容放入控制器完全打破了MVC模式.

对于任何模型的行为都是如此.如果我使用DCI架构并从数据模型中分离行为,我将不得不引入其他对象来保存行为.这可以通过引入角色和上下文来完成.

当然,模型数据和行为可以使用普通的javascript对象或任何"类"模式来实现.但AngularJS的做法是什么呢?使用服务?

所以它归结为这个问题:

在AngularJS最佳实践之后,您如何实现与控制器分离的模型?

javascript model-view-controller dci angularjs

340
推荐指数
7
解决办法
7万
查看次数

MEAN.js和MEAN.io之间的区别

我想使用MEAN JavaScript Stack,但我注意到有两个不同的堆栈,它们有自己的网站和安装方法:mean.js和mean.io. 所以我想问自己这个问题:"我使用哪一个?".

所以为了回答这个问题,我问社区你是否可以解释这两者之间有什么区别?如果可能的利弊?因为它们看起来和我很相似.

javascript web-applications node.js angularjs mean-stack

334
推荐指数
5
解决办法
11万
查看次数

AngularJs $ http.post()不发送数据

谁能告诉我为什么以下声明不会将发布数据发送到指定的网址?当我打印$ _POST时,在服务器上调用url - 我得到一个空数组.如果我在将数据添加到数据之前在控制台中打印消息 - 它会显示正确的内容.

$http.post('request-url',  { 'message' : message });
Run Code Online (Sandbox Code Playgroud)

我也尝试将数据作为字符串(具有相同的结果):

$http.post('request-url',  "message=" + message);
Run Code Online (Sandbox Code Playgroud)

当我以下列格式使用它时它似乎正在工作:

$http({
    method: 'POST',
    url: 'request-url',
    data: "message=" + message,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
Run Code Online (Sandbox Code Playgroud)

但有没有办法用$ http.post()来做 - 并且我总是必须包含标题才能使它工作?我相信上面的内容类型是指定发送数据的格式,但我可以将其作为javascript对象发送吗?

post angularjs angular-http

333
推荐指数
16
解决办法
69万
查看次数

AngularJS app.run()文档?

如何以及在哪里app.run()使用?模块定义后,之后app.config()还是之后app.controller()?

我正在采用BreezeJS Angular Q,它询问是否可以在app.run()函数中运行某些代码.

angularjs

332
推荐指数
2
解决办法
31万
查看次数

AngularJS:如何在控制器之间传递变量?

我有两个Angular控制器:

function Ctrl1($scope) {
    $scope.prop1 = "First";
}

function Ctrl2($scope) {
    $scope.prop2 = "Second";
    $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally
}
Run Code Online (Sandbox Code Playgroud)

我不能Ctrl1在里面使用,Ctrl2因为它是未定义的.但是,如果我尝试传递它...

function Ctrl2($scope, Ctrl1) {
    $scope.prop2 = "Second";
    $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误.有谁知道如何做到这一点?

干

Ctrl2.prototype = new Ctrl1();
Run Code Online (Sandbox Code Playgroud)

也失败了.

注意:这些控制器不是彼此嵌套的.

javascript angularjs angularjs-controller

325
推荐指数
7
解决办法
32万
查看次数

Javascript .map文件 - javascript源地图

最近我看到带有.js.map扩展名的文件附带了一些JavaScript库(比如Angular),这只是我脑子里提出的几个问题:

  • 它是为了什么?为什么Angular的人会提供.js.map文件?
  • 我(作为JavaScript开发人员)如何使用该angular.min.js.map文件?
  • 我应该关心.js.map为我的JavaScript应用程序创建文件吗?
  • 它是如何创建的?我看了一下,angular.min.js.map它充满了奇怪的格式化字符串,所以我认为它不是手动创建的.

javascript angularjs source-maps

324
推荐指数
4
解决办法
9万
查看次数

如何从AngularJS中具有自己的范围*的自定义指令*中访问父作用域?

我正在寻找任何方式访问指令中的"父"范围.范围,转换,要求的任何组合,从上面传递变量(或范围本身)等.我完全愿意向后弯腰,但我想避免一些完全hacky或不可维护的东西.例如,我知道我现在可以通过$scope从preLink参数中获取并迭代它的$sibling范围来找到概念性的"父".

我真正想要的是能够$watch在父范围内表达.如果我能做到这一点,那么我可以完成我在这里要做的事情: AngularJS - 如何使用变量渲染部分?

重要的一点是,该指令必须可以在同一父范围内重复使用.因此默认行为(范围:false)对我不起作用.我需要每个指令实例的单独范围,然后我需要$watch一个存在于父范围内的变量.

代码示例值1000个单词,因此:

app.directive('watchingMyParentScope', function() {
    return {
        require: /* ? */,
        scope: /* ? */,
        transclude: /* ? */,
        controller: /* ? */,
        compile: function(el,attr,trans) {
            // Can I get the $parent from the transclusion function somehow?
            return {
                pre: function($s, $e, $a, parentControl) {
                    // Can I get the $parent from the parent controller?
                    // By setting this.$scope = $scope from within that controller?

                    // …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

323
推荐指数
4
解决办法
26万
查看次数

重新加载当前状态 - 刷新数据

我正在使用Angular UI路由器,并希望重新加载当前状态并刷新所有数据/重新运行控制器以获取当前状态及其父级.

我有3个州级别:directory.organisations.details

directory.organisations包含一个包含组织列表的表.单击表中的项目会加载directory.organisations.details并使用$ StateParams传递项目的ID.因此,在详细信息状态中,我加载此项目的详细信息,编辑它们,然后保存数据.到目前为止都很好.

现在我需要重新加载此状态并刷新所有数据.

我试过了:

 $state.transitionTo('directory.organisations');
Run Code Online (Sandbox Code Playgroud)

哪个进入父状态,但没有重新加载控制器,我想因为路径没有改变.理想情况下,我只想保留在directory.organisations.details状态并刷新父级中的所有数据.

我也尝试过:

$state.reload()
Run Code Online (Sandbox Code Playgroud)

我在API WIKI for $ state.reload上看过这个"(控制器现在重新修复的错误,很快就会修复)."

任何帮助,将不胜感激?

angularjs angular-ui angular-ui-router

323
推荐指数
10
解决办法
44万
查看次数

延迟AngularJS路由更改,直到加载模型以防止闪烁

我想知道是否有一种方法(类似于Gmail)AngularJS 延迟显示新路由,直到每个模型及其数据已使用其各自的服务获取.

例如,如果ProjectsController列出了所有项目以及project_index.html显示这些项目的模板,Project.query()则会在显示新页面之前完全获取.

在此之前,旧页面仍将继续显示(例如,如果我正在浏览另一个页面,然后决定查看此项目索引).

javascript angularjs angularjs-routing

319
推荐指数
9
解决办法
15万
查看次数