小编lui*_*ati的帖子

搜索引擎如何处理AngularJS应用程序?

关于搜索引擎和SEO,我看到AngularJS应用程序存在两个问题:

1)自定义标签会发生什么?搜索引擎会忽略这些标签中的所有内容吗?即假设我有

<custom>
  <h1>Hey, this title is important</h1>
</custom>
Run Code Online (Sandbox Code Playgroud)

<h1>即使是在自定义标签内,也会被编入索引?


2)有没有办法避免索引{{}}的搜索引擎字面上绑定?即

<h2>{{title}}</h2>
Run Code Online (Sandbox Code Playgroud)

我知道我可以做点什么

<h2 ng-bind="title"></h2>
Run Code Online (Sandbox Code Playgroud)

但是,如果我想让爬虫"看到"标题怎么办?服务器端渲染是唯一的解决方案吗?

seo html5 search-engine google-search angularjs

696
推荐指数
10
解决办法
21万
查看次数

推荐可扩展的AngularJS项目结构?

我见过几个AngularJS项目模板:官方网站上的种子项目,Yeoman的生成和AngularFun.

是否有任何其他(非)固定的模板我应该看一下,或者您建议的可扩展AngularJS项目的任何相关模式?

通过可扩展我的意思

  • 能够在自己的文件中分割控制器,指令,过滤器等;
  • 能够按需加载这些文件,而不是让浏览器加载所有内容;
  • 能够拥有共同的跨项目组件(例如,通用指令,过滤器或服务).

architecture templates project angularjs

46
推荐指数
3
解决办法
4万
查看次数

使用d3对数刻度而不是线性刻度

我正在尝试基于http://mbostock.github.com/d3/talk/20111116/bar-hierarchy.html做一个图表,唯一的区别是我想使用x-的对数刻度轴.

这是我的小提琴:http://jsfiddle.net/JhDVC/5/

如您所见,x轴在第4行定义:

x = d3.scale.linear().range([0, w]),
Run Code Online (Sandbox Code Playgroud)

如果我改变它

x = d3.scale.log().range([0, w]),
Run Code Online (Sandbox Code Playgroud)

然后它不起作用(没有渲染),抛出这些错误消息:

Error: Invalid value for <rect> attribute width="NaN" 
Run Code Online (Sandbox Code Playgroud)

更改域设置

x.domain([0, root.value]).nice();
Run Code Online (Sandbox Code Playgroud)

x.domain([1, root.value]).nice();
Run Code Online (Sandbox Code Playgroud)

向我显示z轴(名称)但仍然没有条形或值.

javascript hierarchy bar-chart d3.js

12
推荐指数
2
解决办法
2万
查看次数

根据路线切换ng-include的可见性

我有以下配置:

$routeProvider
.when('/cars', { templateUrl: 'app/cars/index.html', controller: 'CarsCtrl', reloadOnSearch: false })
.when('/bikes', { templateUrl: 'app/bikes/index.html', controller: 'BikesCtrl', reloadOnSearch: false });
Run Code Online (Sandbox Code Playgroud)

在我的根index.html的某个地方有一个:

<a href="#/cars">Cars</a>
<a href="#/bikes">Bikes</a>
<div ng-view></div>
Run Code Online (Sandbox Code Playgroud)

现在,我希望在DOM中同时加载和生成两个视图,并根据路由/ URL显示其中一个.

类似下面的内容(不是实际的工作代码,只是为了给你一个想法).

app.js:

$routeProvider
.when('/cars', { controller: 'CarsCtrl', reloadOnSearch: false })
.when('/bikes', { controller: 'BikesCtrl', reloadOnSearch: false });
Run Code Online (Sandbox Code Playgroud)

root index.html:

<a href="#/cars">Cars</a>
<a href="#/bikes">Bikes</a>
<div ng-include="'app/cars/index.html'" ng-show="carsVisible"></div>
<div ng-include="'app/bikes/index.html'" ng-show="bikesVisible"></div>
Run Code Online (Sandbox Code Playgroud)

更新:我知道ng-view类型可以做到这一点,但差异,如果微妙,存在.我希望每个视图的html生成一次并始终保留在DOM中.

javascript angularjs angularjs-routing

7
推荐指数
1
解决办法
1万
查看次数

手动宣传与Bluebird的pg.connect

我想宣传node-postgres的pg.connect方法以及connection.query回调中提供的内部方法.

我可以.promisify后者,但我需要手动实现第一个(如果我在这里遗漏了一些东西,请解释).

问题是,我不确定这段代码是否正确或是否应该改进?代码正在运行,我只是想知道我是否正在使用Bluebird.

// aliases
var asPromise = Promise.promisify;

// save reference to original method
var connect = pg.connect.bind(pg);

// promisify method
pg.connect = function (data) {
  var deferred = Promise.defer();

  connect(data, function promisify(err, connection, release) {
    if (err) return deferred.reject(err);

    // promisify query factory
    connection.query = asPromise(connection.query, connection);

    // resolve promised connection
    deferred.resolve([connection,release]);
  });

  return deferred.promise;
};
Run Code Online (Sandbox Code Playgroud)

node.js promise node-postgres bluebird

6
推荐指数
1
解决办法
4753
查看次数

如何填写Postgres查询中的时间戳空白?

鉴于下表:

CREATE TABLE channel1m (
  ts TIMESTAMP WITHOUT TIME ZONE NOT NULL,
  itemId BIGINT,
  value BIGINT
)
Run Code Online (Sandbox Code Playgroud)

在其中一排被插入每分钟,每的itemId,如下所示:

ts                    itemId         value
2012-12-03 15:29:00   100            1
2012-12-03 15:30:00   100            2
2012-12-03 15:30:00   101            0
2012-12-03 15:32:00   100            1
2012-12-03 15:32:00   101            1
Run Code Online (Sandbox Code Playgroud)

我找不到一种方法(不创建额外的表)来编写填充时间间隔的查询(例如,对于itemId 101为15:29:00,对于两个项目为15:31:00),返回NULL值.

预期的结果集将是:

ts                    itemId         value
2012-12-03 15:29:00   100            1
2012-12-03 15:29:00   101            NULL
2012-12-03 15:30:00   100            2
2012-12-03 15:30:00   101            0
2012-12-03 15:31:00   100            NULL
2012-12-03 15:31:00   101            NULL
2012-12-03 15:32:00   100 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql timestamp gaps-and-islands

4
推荐指数
2
解决办法
4256
查看次数

如何在AngularJS摘要循环中处理观察者和过滤器?

我知道范围观察者和过滤器都在摘要循环中重复执行.但是以下对我来说有点不清楚:

  • 他们执行相同数量的周期吗?

  • 两者都是由同样的情况引发的吗?

angularjs angularjs-scope angularjs-filter

3
推荐指数
1
解决办法
785
查看次数