我正在尝试进行两种过滤方式(通过点击字母或在输入字段中输入).
<body ng-controller="MainController">
<ul search-list=".letter" model="search">
<li class="letter" ng-repeat="letter in alphabet.letter">{{ letter }}</li>
</ul>
<div class="container" ng-controller="CountriesController">
<input id="q" type="text" ng-model="search " />
<ul>
<li ng-repeat="country in countries.country | filter:search:startsWith">{{ country }}</li>
</ul>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
和js:
var app = angular.module('demo', []);
var controllers = {};
var alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
app.directive('searchList', function() {
return {
scope: {
searchModel: '=model'
},
link: function(scope, element, attrs) {
element.on('click', attrs.searchList, function() {
scope.searchModel = $(this).text();
scope.$apply();
});
}
};
});
controllers.MainController = function($scope) { …Run Code Online (Sandbox Code Playgroud) 我列出了通过ng-repeat显示的国家/地区列表:
<ul>
<li ng-repeat="country in countries.country | filter:search:startsWith">{{ country }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在此之前,我已经创建了一个包含所有国家/地区的排序数组:
var countriesNotSorted = ['Ukraine','Urugvai','Russia','Romania','Rome','Argentina','Britain','Indonesia','Germany','Brazil','Portugal','Polska','Uganda','Algeria','Andorra'],
countriesArray = countriesNotSorted.sort();
Run Code Online (Sandbox Code Playgroud)
此外,我有可点击的字母列表,当其中一个被点击列表变得排序.问题是:是否可以在非常开始的情况下将国家列表(通过Angular ng-repeat显示)分成不同的部分,因此Algeria, Andorra, Argentina所有的countires开始'A'将出现在某个标题之后(例如大写字母'A')?
A:
Algeria
Argentina
Andorra
B:
Brazil
Bolgaria
Belgium
Run Code Online (Sandbox Code Playgroud)
这是我的Plnkr
Thanx提前注意和时间
javascript filtering angularjs ng-repeat angularjs-ng-repeat
Chart.js遇到麻烦
1)是否可以将底部标签移动到图表顶部?2)是否可以用第一条灰线隐藏左标签?3)是否可以在每个点上设置永久性工具提示(以显示温度),而不是将鼠标悬停在工具提示上?
这是我的图表http://jsfiddle.net/JohnnyJuarez/ojc09hv4/:
<canvas id="weeksChart" width="651" height="335"></canvas>
var dayTemperatureArray = [-5, 14, 15, 15, 17, 18, 19, 21, 22, 25, 24, 20, 19, 16];
var nightTemperatureArray = [-10, 4, 5, 6, 8, 11, 12, 15, 17, 15, 13, 12, 11, 9];
var dataWeeks = {
labels: ["16.02", "17.02", "18.02", "19.02", "20.02", "21.02", "22.02", "23.02", "24.02", "25.02", "26.02", "27.02", "28.02", "01.03"],
datasets: [
{
label: "Days temperature chart",
fillColor: "transparent",
strokeColor: "rgba(244, 6, 6, 1)",
data: dayTemperatureArray
},
{ …Run Code Online (Sandbox Code Playgroud) 希望有人可以帮忙解决这个问题:
img)?下一个不起作用:
var banner = document.getElementById('banner');
var imgElement = banner.getElementsByTagName('img');
var imgSrc = imgElement.getAttribute('src');
Run Code Online (Sandbox Code Playgroud)
最后一行返回imgElement.getAttribute is not a function.我想这是因为第二行,我得到了object HTMLCollection...但为什么我得到了这个以及我必须做什么才能得到我想要的东西?
在任何帮助下提前很多.
例如,我有国家列表,<div class="container" ng-init="
countries=['Ukraine','Urugvai','Russia','Romania','Rome','Argentina','Britain']
">我通过ng-repeat显示它们:
<ul>
<li ng-repeat="country in countries | filter:q">{{ country }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
然后我做了过滤输入:
<input id="q" type="text" ng-model="q"/>
Run Code Online (Sandbox Code Playgroud)
另外,我有字母表:
<ul>
<li class="letter">A</li>
<li class="letter">B</li>
<li class="letter">R</li>
<li class="letter">U</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我要做的是,当我点击.letter并将这封信输入以开始过滤我的国家列表时收到信件:
$(document).on('click','.letter',function(){
var el = $(this);
var html = el.html();
var firstLetter = html.charAt(0);
$('#q').val(firstLetter);
});
Run Code Online (Sandbox Code Playgroud)
所以当我点击字母时,它会把这个字母带进输入字段.但是没有发生任何事情......点击的字母显示在输入字段中,但过滤器不起作用.
所以我的问题是,如何使这个工作?当我把信放在那里时如何模拟输入字段中的输入?
Thanx提前很多!
PS这是我的Plunker DEMO
javascript ×5
angularjs ×3
filter ×2
filtering ×2
jquery ×2
chart.js ×1
getattribute ×1
input ×1
ng-repeat ×1