我需要将一个variables传递给另一个控制器。 我有以下与ListCtrl相关的代码: <a href="#items" data-router="article" ng-click="changeListName('metro')"> 该链接将去到另一个控制器,ItemCtrl。 我想将一个variables传递给ItemCtrl。 我想过使用一个名为SharedProperties的服务: service('sharedProperties', function () { var list_name = ''; return { getListName: function() { return list_name; }, setListName: function(name) { list_name = name; } }; }); 当点击链接时,我会调用一个angular度点击事件来触发以下function: $scope.changeListName = function(name) { sharedProperties.setListName(name); }; 但是,ng-click似乎并没有改变我的共享属性的值… UPDATE 我在由ng-click触发的函数内部放置一个警报,并且触发警报,因为它应该是。 但是,当我写这样的function: $scope.changeListName = function(name) { sharedProperties.setListName(name); }; 它不工作…它看起来像“sharedProperties.setListName(name);” 不执行… 如果我把它放在具有虚拟名称(例如metro)的函数之外,它可以工作。 更新3 […]
说我有一个大的数组重复。 当ng-repeat运行时,它将该数组的每个元素都添加到一个独立的作用域中,并将该数组本身放在一个作用域中。 这意味着$ digest会检查整个数组是否发生更改,最重要的是,它将检查数组中每个单独的元素是否发生更改。 看到这个笨蛋是我正在谈论的一个例子。 在我的用例中,我从不改变数组中的单个元素,所以我不需要让他们看。 我只会改变整个数组,在这种情况下ng-repeat会重新呈现整个表格。 (如果我错了,请让我知道..) 在(比方说)1000行的数组中,这是1000多个expression式,我不需要评估。 如何在观看主arrays的同时从观察者注销每个元素? 也许而不是取消注册,我可以更多地控制我的$摘要,并以某种方式跳过每一行? 这个具体案例实际上是一个更普遍问题的例子。 我知道$ watch会返回一个“注销”function ,但是当指令注册手表时,这并不是什么好事,大部分时间都是这样。
我有一个variables将由一个或多个控制器使用,由服务更改。 在这种情况下,我已经构build了一个服务,将这个variables保存在内存中,并在控制器之间共享。 问题是:每当variables发生变化时,控制器中的variables都不会实时更新。 我创build这个小提琴帮助。 http://jsfiddle.net/ncyVK/ —请注意,当我增加count的值时, {{countService}}或{{countFactory}}永远不会更新。 如何将Controller / Factoryvariables绑定到Controller中的$ scope.variable? 我做错了什么?
是否可以使用与Angularjs的锚链接? 即: <a href="#top">Top</a> <a href="#middle">Middle</a> <a href="#bottom">Bottom</a> <div name="top"></div> … <div name="middle"></div> … <div name="bottom"></div> 谢谢
我的理解是,在下面的代码中,这两个绑定只会懒惰地绑定一次 : <li ng-repeat="item in ::items">{{::item.name}}</li> 但是,在以下情况下, 每个摘要都会更新{{item.name}} ? <li ng-repeat="item in ::items">{{item.name}}</li> 一次性绑定效果如何嵌套ng-repeat ? <li ng-repeat="item in ::items"> <span ng-repeat="thing in item.things">{{thing.name}}</span> </li>
我已经使用Xampp和JetBrain WebStorm来运行一个AngularJS项目。 但它是复杂和低性能。是否有其他方式来运行AngularJS项目?
我有一个简单的控制器使用$资源: var Regions = $resource('mocks/regions.json'); $scope.regions = Regions.query(); 我在一个指令中使用这个控制器(在链接函数中) var regions = scope.regions; 但地区是不确定的。 这是相当逻辑的调用是asynchronous的。 我的问题是我怎么能等待结果和地区是一个数组与所有数据? UPDATE : 这里指令的定义 app.directive('ngMap', function() { return { restrict: 'EA', replace: 'true', scope: { }, template: '<div id="map"></div>', controller: 'AccordMapCtrl', link: function(scope, element, attrs) { var regions = scope.regions; console.log(regions); for (var region in regions) {} }; });
我试图通过使用angular度ng-style应用背景图像到一个div(我以前曾尝试过一个自定义指令具有相同的行为),但它似乎并没有工作。 <nav class="navigation-grid-container" data-ng-class="{ bigger: isNavActive == true }" data-ng-controller="NavigationCtrl" data-ng-mouseenter="isNavActive = true; $parent.isNavActive = true" data-ng-mouseleave="isNavActive = false; $parent.isNavActive = false" data-ng-show="$parent.navInvisible == false" data-ng-animate="'fade'" ng-cloak> <ul class="navigation-container unstyled clearfix"> <li class="navigation-item-container" data-ng-repeat="(key, item) in navigation" data-ng-class="{ small: $parent.isNavActive, big: isActive == true }" data-ng-mouseenter="isActive = true; isInactive= false" data-ng-mouseleave="isActive = false; isInactive= true"> […]
在控制器中,我使用$ http或$ resource服务获取一些JSON数据。 然后我把这个数据写在$ scope中,AngularJS更新页面的HTML结构。 我的问题是,我需要知道是什么新的大小(宽度和高度)的列表(我的意思是,HTML DOM元素)充满Angular ng-repeat指令。 因此,我必须在Angular完成更新DOM结构之后运行JavaScript代码。 什么是正确的方法来做到这一点? 我在过去的四个小时里search了互联网,但是我找不到解决我的问题的方法。 这是我如何接收JSON数据: var tradesInfo = TradesInfo.get({}, function(data){ console.log(data); $scope.source.profile = data.profile; $scope.trades = $scope.source.profile.trades; $scope.activetrade = $scope.trades[0]; $scope.ready = true; init(); //I need to call this function after update is complete }); 这是init()函数中发生的事情: function init(){ alert($('#wrapper').width()); alert($('#wrapper').height()); } 我知道这个问题一定有一些容易解决的问题,但我现在不能find它。 提前致谢。
我有一个简单的删除button,将接受一个string或数字,但不会接受ng模型variables(不知道这是否是正确的术语)。 <button class="btn btn-danger" ng-click="delete('{{submission.id}}')">delete</button> 其中生成: <button class="btn btn-danger" ng-click="delete('503a9742d6df30dd77000001')">delete</button> 然而,当我点击时什么也没有发生。 如果我硬编码一个variables,那么它工作得很好。 我假设我只是没有做“angular”的方式,但我不知道这是什么方式:) 这是我的控制器代码: $scope.delete = function ( id ) { alert( 'delete ' + id ); }