我有以下层的Angular应用程序:
service() 用于计算和数据修改factory() 用作多个控制器的通用数据存储controllers()我的控制器从工厂公开功能,反过来从服务调用功能.在HTML中,我运行控制器功能并向用户显示输出:{{ controller.function() }}.
我注意到,当加载页面时,以及每次后续模型更改时,controller.function()都会运行两次.为什么会这样?如何避免不必要的调用?
查看工作示例 - 打开浏览器JS控制台,单击Run并观察该console.log()行执行两次.
angular.module('myApp',[])
.service('Worker', [function() {
this.i = 0;
this.sample = function(data) {
console.log(this.i.toString() + " " + Math.random().toString());
return JSON.stringify(data);
};
}])
.factory('DataStorage', ['Worker', function(worker) {
var self = this;
self.data = [{}, {}];
self.getData = function() {
return self.data;
}
self.sample = function() {
return worker.sample(self.data);
};
return {
getData: self.getData,
sample: self.sample
}; …Run Code Online (Sandbox Code Playgroud) 我有带有bootstrap3主题的Pelican网站。该主题使用 Font Awesome 通过社交媒体帐户的链接来放置图标。Font Awesome 类名称是通过将链接文本小写并用破折号替换所有空格来确定的。
问题是,有时我的链接文本不映射到 Font Awesome 类名称。例如,信封图标是由envelope班级提供的,但我真的想要Email作为网站上的链接文本。
我可以更改 Font Awesome 样式表中的类名称,但是这样我将无法使用 Bootstrap CDN,并且每次将 Font Awesome 更新到新版本时都必须进行此类修改。
我决定修改 Pelican 模板,并在编写类名之前进行必要的转换。到目前为止,我的代码如下所示:
{% set name_sanitized = name|lower|replace('+','-plus')|replace(' ','-')|replace('stackexchange', 'stack-exchange')|replace('rss-feed', 'rss')|replace('email', 'envelope') %}
Run Code Online (Sandbox Code Playgroud)
replace我可以使用 来替换这个调用链吗dict?像这样的东西:
{% set replacements = dict('+' = '-plus', ' ' = '-',
'stackexchange' = 'stack-exchange', 'rss-feed' = 'rss',
'email' = 'envelope') %}
{% set name_sanitized = name|lower|??? %}
Run Code Online (Sandbox Code Playgroud)
如果没有,是否有其他方法可以使这部分从长远来看更具可读性和可维护性?
这可能是一个非常愚蠢的问题,但我一直在努力解决这个问题.
我在R中的变量中存储了某个值.变量是mycut
当我想看看变量mycut中的内容时,我明白了
在R
>head (mycut)
chr1;884869;884870 chr1;1022900;1022901 chr1;1052886;1052887
1 1 2
chr1;1052949;1052950 chr1;1093940;1093941 chr1;1102389;1102390
2 2 1
Run Code Online (Sandbox Code Playgroud)
但是当我将这个变量mycut写入文件时
>write(mycut, file='mycut')
Run Code Online (Sandbox Code Playgroud)
然后我看到了我得到的价值
1 1 2
2 2 1
Run Code Online (Sandbox Code Playgroud)
我错过了其他信息.理想情况下我喜欢这种格式
chr1;884869;884870 1
chr1;1022900;1022901 1
chr1;1052886;1052887 2
Run Code Online (Sandbox Code Playgroud)
标签分开.
我怎样才能做到这一点.
请帮忙.
谢谢