我有以下链接.
<a ui-sref="...">Clicking this adds ?test=true to the query params.</a>
Run Code Online (Sandbox Code Playgroud)
有没有办法使用ui-sref属性来更改查询参数而无需重新加载页面或指向另一个函数?
我想要一个指令在三个范围变量发生变化时重新呈现HTML.前两个只是整数,第三个是数组.
我们$watchGroup
看几个变量,我们$watch
用objectEquality
作为第三个参数,我们$watchCollection
这就好比$watch
,但objectEquality
暗示.
有没有办法写一个类似这个的$ watch?
$scope.$watchGroup(['number1', 'number2', 'myArray'], callback, true); // true for objectEquality
Run Code Online (Sandbox Code Playgroud) 更改此对象的最佳方法是什么
{
src: 'img.jpg',
title: 'foo'
}
Run Code Online (Sandbox Code Playgroud)
为有效的HTML标记字符串这样
<img src="img.jpg" title="foo" />
Run Code Online (Sandbox Code Playgroud)
解决方案1
使用jQuery这很容易; 但很复杂:
$('<img/>').attr(obj).wrap('<div/>').parent().html();
Run Code Online (Sandbox Code Playgroud)
有更好的想法吗?
我正在尝试填充下拉选择选项列表,并使用ng-model和ng-options设置默认选定值.
我在视图中有以下代码:
<select ng-model="thisTour.site" ng-options="site.name for site in siteList"></select>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
$scope.siteList = [
{ id: 1, name: 'cycling'},
{ id: 2, name: 'walking'},
{ id: 3, name: 'holidays'}
]
$scope.thisTour.site = { id: 2, name: 'walking'};
Run Code Online (Sandbox Code Playgroud)
该列表正在填充来自siteList
对象的正确3个选项,但是默认情况下并不是按照我的预期选择行走?为什么不?
现在,当我改变这个:
$scope.thisTour.site = { id: 2, name: 'walking'};
Run Code Online (Sandbox Code Playgroud)
对此:
$scope.thisTour.site = $scope.siteList[1];
Run Code Online (Sandbox Code Playgroud)
现在它有效.为什么?这不是一回事吗?
在我的代码中我有这个:
/// <reference path="../../../../scripts/typings/angularjs/angular.d.ts" />
angular.module('question')
.controller('QuestionHomeController', [
'$http',
'enumService',
'$q',
'$rootScope',
'$scope',
'$state',
questionHomeController]);
function questionHomeController(
$http,
enumService,
$q,
$rootScope,
$scope,
$state
) {
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何为$ http和$ q添加Typescript类型?我已经引用了AngularJS类型定义文件,但是这些类型仍然没有显示出来
我想知道bootstrap给出的popover我有以下的东西 -
<a href="javascript: void(0)" id="member1" rel="popover" data-content="Co-President sample@uic.edu" data-original-title="Liz Sample"><img src="femaleprofilepicture2.jpg" class="img-polaroid"></a>
Run Code Online (Sandbox Code Playgroud)
截至目前,当我点击图片时,我同时获得了联合总裁和sample@uic.edu.如何让它们出现在不同的行上.
谢谢
如何访问子指令控制器?具体来说,我需要访问父指令中存在的所有ngModelController.例:
<parent-directive>
<input type="text" ng-model="model1"/>
<input type="text" ng-model="model2"/>
</parent-directive>
Run Code Online (Sandbox Code Playgroud)
那么,"parentDirective"是否有办法访问"model1"和"model2"的ngModelControllers?
javascript angularjs angularjs-directive angularjs-scope angularjs-ng-model
我正在尝试使用Karma + Jasmine编写单元测试,但遇到角度模拟错误.运行grunt测试时出现以下错误:
PhantomJS 1.9.8(Mac OS X)错误TypeError:'undefined'不是/ Users/danielbogart/documents/coding/work/AexNav/bower_components/angular-mocks /中的对象(评估'angular.mock = {}') angular-> mocks.js:17 Chrome 39.0.2171(Mac OS X 10.9.4)错误未捕获的TypeError:无法在/ Users/danielbogart/Documents/coding/work/AexNav/bower_components/angular-中设置undefined属性'mock'嘲笑/ angular-> mocks.js:17
Gruntfile karma配置:
karma: {
options: {
frameworks: ['jasmine'],
files: [
'dom_munger.data.appjs',
'tests/spec/*.js',
'bower_components/angular-mocks/angular-mocks.js'
],
logLevel: 'ERROR',
reporters: ['mocha'],
autoWatch: false, //watching is handled by grunt-contrib-watch
singleRun: true
},
all_tests: {
browsers: ['PhantomJS', 'Chrome']
},
during_watch: {
browsers: ['PhantomJS']
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试自定义一个向每个第4个元素ng-repeat
添加类似br
标签的东西.我试过四处寻找,但似乎找不到可靠的答案.是否有一种简单的方法可以为Angular添加这样的条件?我ng-repeat
只是添加一些spans
内容,但我需要每4个元素开始一个新行.
即我想要以下内容
item1 item2 item3 item4
item5 item6 item7 item8
但是现在它就是这样做的
item1 item2 item3 item4 item5 item6 item7 item8
如果有任何关于ng-repeat
定制的好文章(对于新手)我会感谢链接以及我发现的所有内容都太难理解了.
HTML
<div class="section">
<div ng-repeat="items in MyList">
<img ng-click="AddPoint($index)" src={{items.image}} />
<span>{{items.currentPoint}}/{{items.endPoint}}</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 问题很简单:使用AngularJS我们不能将$ log注入提供者.
angular.module('my.module', [])
.provider('myProvider', function ($log, $logProvider) {
$log.log("Aloha!"); // Unknown provider: $log
$logProvider.log("Hi!"); // undefined is not a function: $logProvider has no `log` method
this.$get = function($log) {
$log.log("Hello!"); // Everything is ok here
};
});
Run Code Online (Sandbox Code Playgroud)
是的,我们可以注入$logProvider
,但它没有需要的方法(.log
,.error
等).
是的,我们可以注入$logProvider
,然后手动调用$logProvider.$get()
,但我们将无法使用装饰器的其他逻辑.
是的,我们可以编写自己的logProvider,但我想知道为什么Angular不支持这个开箱即用的功能.
那么,我们不能在提供者中以"真正的角度方式"使用控制台吗?这个事实很奇怪.而且伤心.
问题:我如何在提供商中以"真正的角度方式"使用控制台?
我无法找到这个问题的任何解释.Angular Developers Guide说我们需要在每个地方使用$ log而不是控制台.
angularjs ×8
javascript ×8
html ×2
jquery ×2
css ×1
css3 ×1
dom ×1
jasmine ×1
karma-runner ×1
routing ×1
typescript ×1
unit-testing ×1