在使用Angular 2和多种计算服务编写应用程序时,我遇到了以下问题:
这是类的快照,它为我提供了多种计算方法,并在应用程序级别实例化:
@Injectable()
export class FairnessService {
constructor(){}
private static calculateProcentValue(value: number, from: number): number {
return (Math.abs(value) / Math.abs(from)) * 100;
}
public static calculateAllocationWorth(allocation: Allocation): number {
...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我正在为一个非常恼人的错误而苦苦挣扎.首先:我是新来的.
我尝试用Angular实现单页面应用程序.为了使我的工作流程更好,我尝试实现gulp.
我在安装一些gulp插件时遇到了一些严重的npm错误,但这是另一个故事,我意识到,它有或没有错误.
我真正想到的是useref插件.或者更确切地说,uglify插件.
这是在我的gulpfile.js中:
gulp.task('useref', function() {
return gulp.src('app/*.html')
.pipe(useref())
.pipe(gulpIf('*.js', uglify()))
.pipe(gulpIf('*.css', cssnano()))
.pipe(gulp.dest('dist'))
});
Run Code Online (Sandbox Code Playgroud)
这是它在尝试运行时抛出的堆栈跟踪.C:\ Work\evori-portfolio> gulp useref
[16:32:40] Using gulpfile C:\Work\evori-portfolio\gulpfile.js
[16:32:40] Starting 'useref'...
events.js:141
throw er; // Unhandled 'error' event
^
Error
at new JS_Parse_Error (eval at <anonymous> (C:\Work\evori-portfolio\node_modules\uglify-js\tools\node.js:22:1), <anonymous>:1526:18)
at js_error (eval at <anonymous> (C:\Work\evori-portfolio\node_modules\uglify-js\tools\node.js:22:1), <anonymous>:1534:11)
at croak (eval at <anonymous> (C:\Work\evori-portfolio\node_modules\uglify-js\tools\node.js:22:1), <anonymous>:2025:9)
at token_error (eval at <anonymous> (C:\Work\evori-portfolio\node_modules\uglify-js\tools\node.js:22:1), <anonymous>:2033:9)
at expect_token (eval at <anonymous> (C:\Work\evori-portfolio\node_modules\uglify-js\tools\node.js:22:1), <anonymous>:2046:9)
at expect (eval at <anonymous> (C:\Work\evori-portfolio\node_modules\uglify-js\tools\node.js:22:1), <anonymous>:2049:36) …
Run Code Online (Sandbox Code Playgroud) 当我正在观看相应的部分时,我尝试将导航栏对象设置为活动状态.换句话说:当滚动浏览我的页面(包含多个部分的单页)时,我正在观看的部分应该在导航栏中突出显示.
我已经通过指令得到了滚动位置.我失败的地方是在.nav ul li上触发ng-class.
<li class="" ng-class="{'active': $parent.scrollPos > document.getElementById('something').offset()}">
<a class="" ng-click="isCollapsed = true" href="#something" du-smooth-scroll>Something</a>
</li>
Run Code Online (Sandbox Code Playgroud)
我使用时没有任何区别
ng-class="{'active': $parent.scrollPos > angular.element('#something').offset()}"
Run Code Online (Sandbox Code Playgroud)
如何从任何元素的文档顶部获取距离?
非常感谢.
PS:我使用jQuery(不是精简版)!
编辑 如何工作(感谢@Sharikov Vladislav):在身体上我使用"PageCtrl":
<body id="page-top" class="index bg-default" ng-app="previewApp" ng-controller="PageCtrl">
Run Code Online (Sandbox Code Playgroud)
看起来像那样:
angular.module('previewApp')
.controller('PageCtrl', function($scope, $element) {
$scope.scrollPos = 0;
$scope.getOffset = function (elementId) {
var element = $element.find(elementId);
return element.offset().top;
};
});
Run Code Online (Sandbox Code Playgroud)
在身体后我使用跨度
<span scroll-position="scrollPos"></span>
Run Code Online (Sandbox Code Playgroud)
初始化我的"scrollPosition"-directive,它允许我访问PageCtrl中$ scope.scrollPos上的当前滚动位置.指示:
angular.module('previewApp')
.directive('scrollPosition', function ($window) {
return {
scope: {
scrollPos: "=scrollPosition"
},
link: function (scope, element, attrs) { …
Run Code Online (Sandbox Code Playgroud)