我将angularjs模板作为包含"ng-repeat"和其他指令的字符串.我想在控制器中编译它以生成结果HTML作为字符串.
关于我想在Angular中应用的内容的示例:
Input:
-------
var template = '<div ng-repeat="item in items">{{item.data}}</div>';
Output:
--------
var result = '<div>1</div><div>2</div><div>3</div><div>4</div>';
Run Code Online (Sandbox Code Playgroud)
我想在控制器中完成这个,我尝试了以下内容:
var template = '<div ng-repeat="item in items">{{item.data}}</div>';
var linkFunction = $compile(template);
var result = linkFunction($scope);
console.log(result); // prints the template itself!
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在使用angular-filter中的 groupBy来按日期属性对对象数组进行分组.
<div ng-repeat="(day, dayEvents) in events | groupBy: 'date' )">
<h3>{{ day | date: mediumDate }}</h3>
</div>
Run Code Online (Sandbox Code Playgroud)
产生以下内容:
Feb 9, 2015
Feb 10, 2015
Feb 11, 2015
Feb 12, 2015
Run Code Online (Sandbox Code Playgroud)
如何从最近的日期开始撤销订单?当我打印到控制台时,阵列打印出我想要的顺序:
Object {
1423699200000: Array[1],
1423612800000: Array[7],
1423526400000: Array[11],
1423440000000: Array[1]
}
Run Code Online (Sandbox Code Playgroud)
我还写了一个自定义过滤器来反转groupBy之后的顺序:
.filter("reverseOrder", function() {
function sortNumber(a,b) {
return parseInt(b) - parseInt(a);
}
return function(collection) {
var keys = Object.keys(collection).sort(sortNumber);
var reveredCollection= {};
var length=collection.length;
angular.forEach(keys, function(key) {
reveredCollection[key] = collection[key];
});
return reveredCollection;
}
})
Run Code Online (Sandbox Code Playgroud)
我申请了这样的: …
当我对angularjs应用程序进行更改时,会出现一个反复出现的问题.问题是如果我想对我所做的更改进行播种,我必须刷新页面.这是一个问题,因为我不希望我的用户必须刷新页面(他们可能不知道这样做).他们可能认为该网站已被破坏.我可以遵循某种角度指令或流程,这样我的UI更改就可以反映在我的生产服务器上而无需用户刷新页面吗?
我已经从控制器传递了一个对象到指令,但是当我在指令中读取对象时我无法进行,它似乎在指令对象中被读为string.Code在下面,我想从对象中读取City和State.
Html File
<div ng-controller="WeatherController">
<div weather ng-object="{{Object}}"></div>
</div>
Controller
.controller('WeatherController', ['$scope', function ($scope) {
$scope.webpartData.OverviewData.Person.Address.City;
$scope.Object = {
City: '',
State: ''
};
$scope.Object.City = 'TestCity';
$scope.Object.State = 'TestState';
});
})
}])
Directive
angular.module('WeatherModule', [])
.directive('Weather', ["$timeout", function($timeout) {
return {
restrict: 'EA',
template: '<div id="weather"></div>',
scope: {
ngObject: '@ngObject'
},
link: function(scope, element, attrs) {
scope.$watch('ngObject', function(value) {
scope.ngObject = value;
});
$timeout(function() {
console.log('Location' + scope.Object.City + ',' + scope.Object.State);
}, 100);
}
};
}])
Run Code Online (Sandbox Code Playgroud)