我正在研究在id参数中使用方括号的遗留系统.例如:
<select id="mySelect[]">
<option value="1">Yadda</option>
<option value="2">Yadda</option>
<option value="3">Yadda</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用这个id时,jQuery(正在javaScript)非常正确地抱怨
$("#mySelect[]").append(options);
Run Code Online (Sandbox Code Playgroud)
鉴于我无法更改遗留代码,因此我坚持使用现有的id(在任何上下文中可能有效,也可能无效),解决这个问题的好方法是让我选择我的元素?
我试图显示输入的搜索词的最佳匹配.例如
现在Jquery没有给我预期的效果.当我输入:今天一个自动完成将显示任何内容,但如果我键入一天,它将显示以该顺序中的这两个单词开头的搜索结果.我想今天出现的一天是今天的第一天和最后一天.我希望搜索结果显示在其中包含这些单词的顺序并不重要.我在这里看了一下,却找不到这样的东西,这似乎是一种常见的搜索方法,我看不出为什么没有人问过这个问题.是否有一个内置的方法来处理这个?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
var availableTags = [
"one day is the first and last today" , "tuesday is today" , "one" , "one day is tomorrow"
];
$( "#tags" ).autocomplete({
source: availableTags, multiple: true,
mustMatch: false
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label …Run Code Online (Sandbox Code Playgroud) ng-init是否关注像ng-model这样的实例化属性的变化?
显然不是,所以我设置了一个如下所示的手表:
app.js
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.$watch('myProp1', function(newVal, oldVal){
$scope.myProp1 = newVal
})
});
Run Code Online (Sandbox Code Playgroud)
HTML
<body ng-controller="MainCtrl">
<input ng-init='myProp="my property"'>{{myProp}}</br>
<input ng-init='myProp1="my 1 property"'>{{myProp1}}</br>
<input ng-init='myProp11="my 11 property"' ng-model='myProp11'>{{myProp11}}
Run Code Online (Sandbox Code Playgroud)
这是plnkr
我有一个ng-repeat,只想在ng-repeat中div使用类的第一个样式type.
<div class="my-list" ng-repeat="item in list">
<div class="type">
<span>{{item.label}}</span>
</div>
<div class="check">
<span>{{item.ischecked}}</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但是它将CSS应用于所有divs类的type
.my-list .type:first-child
Run Code Online (Sandbox Code Playgroud) 我使用angular-ui下拉
它工作正常,但我不知道如何处理下拉菜单中的多个项目.
请考虑以下Plunker中的示例
HTML
<div class="btn-group" dropdown is-open="status.isopen">
<button type="button" class="btn btn-primary dropdown-toggle" ng-disabled="disabled">
Button dropdown <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li ng-repeat="item in items"><a href="#">{{item}}</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要定义滚动并缩短下拉列表.
有任何想法吗?
我有一个带控制器的Angular应用程序,它Angular-Strap在函数调用期间显示模态窗口.它在Chrome中正常运行,但我无法进行有效的单元测试.
App模块和FooController:
var app = angular.module("app", ["mgcrea.ngStrap"]);
app.controller("FooController", function($scope, $modal) {
var fooModal = $modal({
title: 'Foo',
content:'Bar',
show: false,
html: true,
backdrop: 'static',
placement: 'center'});
angular.extend($scope, {
makeItFoo: function() {
fooModal.show();
}
});
});
Run Code Online (Sandbox Code Playgroud)
控制器规格:
describe('FooController', function () {
var scope, controller, modal;
beforeEach(module('app', function ($provide) {
// Stub out $modal service
$provide.value('$modal', function () {
return {
hide: function () { },
show: function () { }
};
});
}));
beforeEach(inject(function ($rootScope, $controller, $injector) {
//set …Run Code Online (Sandbox Code Playgroud) 我有3个不同的代码片段,我想根据选择菜单中的选择进行交换.
它是有效的,如果我包含内联代码,但当我尝试使用ng-includes这样的时候,我得到一个Angular错误并且应用程序失败:
<div ng-switch on="pFilter">
<div ng-include="'includes/parcel_details_incoming.html'" ng-switch-when="Incoming Parcels"></div>
<div ng-include="'includes/parcel_details_forward.html'" ng-switch-when="Exception Parcels"></div>
<div ng-include="'includes/parcel_details_exception.html'" ng-switch-default></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?ng-switch不适用于ng-includes吗?
我在UI-Router .state()调用中使用resolve.在我的控制器中,我可以访问值没有问题,但它抛出一个错误如下:
$注射器/ unpr?P0 = ctrlOptionsProvider%20%3C-trlOptions
以下代码抛出错误但允许我访问变量ctrlOptions就好了:
.state('new_user', {
url: "/user/new",
templateUrl: "views/user/new.html",
data: {pageTitle: 'New User'},
controller: "UserController",
resolve: {
ctrlOptions: ['$stateParams', function($stateParams) {
return {
view: 'new_user',
}
}],
deps: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'MetronicApp',
insertBefore: '#ng_load_plugins_before', // load the above css files before '#ng_load_plugins_before'
files: [
'../../../assets/global/plugins/bootstrap-datepicker/css/datepicker3.css',
'../../../assets/global/plugins/select2/select2.css',
'../../../assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js',
'../../../assets/global/plugins/select2/select2.min.js',
]
});
}]
}
})
Run Code Online (Sandbox Code Playgroud)
MetronicApp.controller('UserController', ['$rootScope', '$scope', '$http', '$stateParams', 'ctrlOptions', function($rootScope, $scope, $http, $stateParams, ctrlOptions, $timeout) {}
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?
谢谢
我试图在我的情况下进行单元测试服务
在我的测试控制器中
myService.getItem('/api/toy/' + scope.id).success(
function(toy) {
$scope.toy = toys.details;
}
);
Run Code Online (Sandbox Code Playgroud)
为MyService
angular.module('toyApp').service('myService', ['$http',
function($http) {
var service = {};
return {
getItem: function(url) {
return $http.get(url);
},
};
}
]);
Run Code Online (Sandbox Code Playgroud)
测试文件.
describe('toy ctrl', function () {
var $httpBackend, ctrl, myService;
beforeEach(module('toyApp'));
beforeEach(inject(function (_$controller_, _$httpBackend_, _$rootScope_, __myService_) {
scope = _$rootScope_.$new();
$httpBackend = _$httpBackend_;
myService = _myService_;
ctrl = _$controller_('toyCtrl', {
$scope: scope
});
}));
describe('call my service', function() {
it('should make request when app loads', function() {
$httpBackend.expectGET('/api/toy/123').respond({id:123, …Run Code Online (Sandbox Code Playgroud) 你如何在AngularJs中模拟一个简单的Factory,它在Karma单元测试中返回静态数据?
我有这个简单的工厂,为了示例返回静态数据:
angular.module('conciergeApp.services')
.factory('CurrentUser', function() {
return {
id: 1,
hotel_id: 1,
}
});
Run Code Online (Sandbox Code Playgroud)
我想知道如何为此编写Karma测试?
到目前为止,我有这个代码,但id不起作用:
describe('ReplyCtrl', function() {
beforeEach(module('conciergeApp'));
beforeEach(module(function($provide) {
$provide.service('CurrentUser', function() {
return 1;
});
}));
//Getting reference of the mocked service
var mockUtilSvc;
inject(function(CurrentUser) {
mockUtilSvc = CurrentUser;
});
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('ReplyCtrl', {
$scope: scope
});
}));
it('should return value from mock dependency', inject(function(mockUtilSvc) {
expect(mockUtilSvc()).toEqual(1);
}));
});
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误消息:
Firefox 41.0.0 (Mac OS X …Run Code Online (Sandbox Code Playgroud) angularjs ×8
javascript ×7
jasmine ×3
css ×2
html ×2
jquery ×2
angular-ui ×1
css3 ×1
dom ×1
jquery-ui ×1
karma-runner ×1
unit-testing ×1