angularjs相对较新.帮助我了解这里发生了什么!
我最终要完成的任务:给定我的html中的一个文本块(比如在一个段落元素中),我想动态地将文本中的选定单词工具提示(准确地说是自举工具提示)添加.因此,例如,如果用户在搜索框中键入世界"hello",则段落中的所有"hello"实例将在悬停时显示工具提示,显示某些消息,如定义或其他内容.
注意:我不认为我最初对此有所了解,但是我要添加工具提示的文本块已经在html中,并且不会有任何类型的指令标记标记.看看我的小提琴插图.
我在jQuery中完成了这个...现在我想让它在angularjs中工作!
我的第一次尝试是使用带有正则表达式的自定义过滤器,该过滤器将带有工具提示属性的"a"标记插入到适当位置的段落中.新的标记出现了,但似乎没有被angularjs"看到"(不太确定术语,但我认为它没有"绑定"??).
这是jsfiddle上说明的问题:
http://jsfiddle.net/petersg5/pF33a/2/
(1)输出中的第一行在"foo"上有一个工作工具提示......它只是在标记中直接有工具提示属性.生成的html:
<a href="#" tooltip-placement="top" tooltip="basic tooltip" class="ng-scope">foo</a>
Run Code Online (Sandbox Code Playgroud)
(2)第二行使用ng-bind-html,并且具有属性,但不是工作工具提示.生成的html:
<a href="#" tooltip-placement="top" tooltip="tooltip via ng-bind-html">foo</a>
Run Code Online (Sandbox Code Playgroud)
(3)第三行使用过滤器,并具有属性,但不是工作工具提示.生成的html:
<a href="#" tooltip-placement="top" tooltip="tooltip via filter">foo</a>
Run Code Online (Sandbox Code Playgroud)
我的主要问题是......如何解决我上面描述的任务?
次要问题是关于理解上述3个例子中的每个例子.我注意到(1)中的直接输出在生成的标记中有角度插入的"ng-scope"类.另外两个缺少这个,但确实在父p标签中插入了ng-binding类.不确定这里发生了什么,但我认为这与我的问题有关.
我有一种感觉,解决方案可能涉及指令,但我不确定如何将该指令应用于现有文本(即标记中已有的ap标记).
谢谢!
编辑:更新jsfiddle以更准确地反映问题(输出中的第四行)
我有一个基于Codeigniter 1.7.2的PHP应用程序,目前正在生产和现场,似乎有严重的内存泄漏.
通过查看服务器上的"top",内存泄漏很明显:
top - 23:42:13 up 26 days, 10:14, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 54 total, 1 running, 53 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 7872040k total, 929748k used, 6942292k free, 142464k buffers
Swap: 0k total, 0k used, 0k free, 214420k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22740 apache 15 0 308m 63m 5976 S 0 0.8 0:14.05 httpd
22733 apache …Run Code Online (Sandbox Code Playgroud) 我正在开发一个涉及以高抽象水平生成表单的应用程序(这是CMS应用程序)。我想动态创建CFormModel对象并即时设置表单字段。我想我可以通过扩展CFormModel,然后动态创建代表表单字段的类属性(在Yii语言中为“属性”)来做到这一点。
为了说明,而不是在以下类(在文件中定义)中指定登录表单:
// From: http://www.yiiframework.com/doc/guide/1.1/en/form.model
class LoginForm extends CFormModel
{
public $username;
public $password;
public $rememberMe=false;
private $_identity;
public function rules()
{
return array(
array('username, password', 'required'),
array('rememberMe', 'boolean'),
array('password', 'authenticate'), // assume function authenticate defined elsewhere
);
}
}
Run Code Online (Sandbox Code Playgroud)
我要这样做如下:
class MyFormModel extends CFormModel {
protected $_rules = array();
public function __construct($attributes=array(), $rules=array()) {
foreach ($attributes as $i => $attr) {
$this->{$attr} = ???; // <<== This is the key here
}
// pass in array of rules as …Run Code Online (Sandbox Code Playgroud) 假设您有一个"主页"网站,用于某种"保存我最喜欢的剪报"服务,用户可以在其中注册帐户,然后将他们喜欢的报价或其他文本的片段保存到个人收藏中(此类网站的一个示例是"Memonic":http://www.memonic.com/,其中我肯定).
第一个用例:用户访问他们喜欢的新闻网站,选择并复制一些文本,切换到加载了"home"(剪辑)网站的标签,粘贴到表单中,然后将所选文本保存到他们的帐户.
第二个用例:用户访问新闻网站,选择文本,右键单击选择一个菜单项,将选定的文本保存到他们的帐户.他们不需要访问"家"网站.这几乎是Memonic的Firefox扩展所做的.
因此,在第一个用例(浏览器)中,假设基于PHP的体系结构,服务器从请求中从浏览器传递的cookie中识别用户.cookie包含session_id,对于该用户是唯一的,服务器用户可以在其中查找包含user_id的会话数据.然后使用user_id将记录插入数据库.
我的问题:这在浏览器扩展中如何工作?我的理解是扩展不使用"会话"或"cookie",虽然我猜测有一种方法来存储本地数据.但是,如何从服务器向浏览器扩展传递唯一ID(识别用户)?这个唯一的id应该来自服务器(如php的会话ID),还是客户端(浏览器插件)生成它并将其发送到服务器?
详细说明第二个用例:
用户下载并安装浏览器扩展,但未注册
在注册帐户之前,用户可以免费获得10个"剪报"
用户访问新闻网站,开始"剪辑",达到10,然后点击扩展程序工具栏中的"注册".在网站上弹出一个叠加层,其中包含一个iframe,其中包含注册表单.用户创建用户名和密码,点击提交.
现在,登录凭证(用户名和密码)已经发送到"主页"(剪辑)服务器,"主"服务器已经创建了一个带有user_id的新用户帐户,并存储在数据库中.此时,浏览器扩展应该知道如何识别用户(user_id或session_id的等价物)......这是如何实现的?
ps - 我真的只对Firefox和Chrome感兴趣
javascript cookies session firefox-addon google-chrome-extension
这类似于SO的另一个问题:
但以上是特定于wordpress的.另外,我的直觉是我的问题与我的Apacher服务器设置有关,但我有点像新手.
这是交易...我有这个Jquery AJAX代码:
events: function(start, end, callback) {
$.ajax({
type: "POST",
// This Works -->
url: 'http://calendar.localhost/index.php/myfeed/',
// This Fails -->
//url: 'http://calendar.localhost/myfeed/',
dataType: 'json',
cache: false,
data: {
appointment_id: _appointmentId
},
success: function(d) {.... },
error: function(x,s,e) {... }
});
Run Code Online (Sandbox Code Playgroud)
当我使用带有index.php的url时,一切正常.但是当我使用没有index.php的那个时,我得到404错误,即使(json)数据看起来好了(见下文).
此外,这发生在我最近升级到的新系统上:Debian 2.6.32(amd64)PHP 5.3.3 Apache 2.2.16
相同的代码(即/ myfeed或没有index.php)适用于我的旧系统:Fedora 8(是的,8 lol)PHP 5.2.x Apache 2.2.6
(注意,最初我使用'/ myfeed'作为在我的"旧"系统上找到的url param.任何我不需要对域进行硬编码的解决方案对我来说都是可以接受的.)
所以要么我在这三个中的一个(即php,apache或linux版本的变化)中有所不同,或者我需要在我的新Apache设置中修改一些东西(我的猜测是根目录' /'对于虚拟主机,我在我的本地主机上用于此站点...也许它认为响应来自不同的域,但我不知道如果它与index.php一起使用但是失败了没有它???).
如果任何人有我一个解决方案或想法,尝试将大大赞赏!!!!
以下是Firebug针对非工作案例的详细信息:
POST http://calendar.localhost/myfeed 404 Not Found
Headers tab:
Response Headersview source
Date Tue, 22 Mar …Run Code Online (Sandbox Code Playgroud) 要生成以下标记:
<label class="foo">Bar</label>
Run Code Online (Sandbox Code Playgroud)
PHP将类似于:
<?php echo $form->label($model,'username'); ?>
Run Code Online (Sandbox Code Playgroud)
看起来它应该是label()的htmlOptions参数的一部分,但我无法弄明白.
来自Yii的文档:
public string label(CModel $model, string $attribute, array $htmlOptions=array ( ))
Run Code Online (Sandbox Code Playgroud)
参考:
http://www.yiiframework.com/doc/api/1.1/CActiveForm#label-detail
php ×3
codeigniter ×2
forms ×2
javascript ×2
yii ×2
ajax ×1
angularjs ×1
apache2 ×1
class ×1
cookies ×1
jquery ×1
label ×1
memory ×1
memory-leaks ×1
session ×1