小编roe*_*mer的帖子

将指令中的输入包装成角度

我有想法将输入包装到自定义指令中,以保证整个网站的外观和行为一致.我还想包装bootstrap ui的datepicker和dropdown.此外,该指令应处理验证和显示工具提示.

HTML应该看起来像这样:

<my-input required max-length='5' model='text' placeholder='text' name='text'/>
Run Code Online (Sandbox Code Playgroud)

要么

<my-datepicker required model='start' placeholder='start' name='start'/>
Run Code Online (Sandbox Code Playgroud)

在指令中我想创建一个dom结构,如:

<div>
 <div>..</div> //display validation in here
 <div>..</div> //add button to toggle datepicker (or other stuff) in here
 <div>..</div> //add input field in here
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试了各种方法来实现这一目标,但总是遇到一些权衡:

  1. 使用transclude和replace将输入插入到指令dom结构中(在这种情况下,指令将被限制为'A'而非'E',如上例所示).这里的问题是,没有简单的方法来访问transcluded元素,因为我想在datepicker的情况下添加自定义属性.我可以使用transclude函数,然后在链接函数中重新编译模板,但这对于此任务来说似乎有点复杂.这也会导致transcluded范围和datepicker的切换状态出现问题(一个在指令范围内,另一个在transcluded范围内).

  2. 仅使用替换.在这种情况下,所有属性都应用于最外层的div(即使我在编译函数中生成模板dom结构).如果我只使用输入作为模板,那么属性在输入上,但我需要在链接函数中生成模板然后重新编译它.据我所知,角度的相位模型,我想避免重新编译和更改链接函数中的模板dom(虽然我看到很多人这样做).

目前我正在使用第二种方法并在链接功能中生成模板,但我想知道是否有人有更好的想法!

angularjs angularjs-directive angular-ui-bootstrap

14
推荐指数
2
解决办法
9720
查看次数

如何让gdb跟随execv?尽管"跟随执行模式"不工作

我写了两个简单的程序:

int main(int ac, char **argv ) {
    execv( "/home/me/Desktop/execvtest2", argv );
}
Run Code Online (Sandbox Code Playgroud)

int main(int ac, char **argv ) {
    execv( "/home/me/Desktop/execvtest1", argv );
}
Run Code Online (Sandbox Code Playgroud)

我用gcc -g将它们编译成相应的输出文件.我使用gcc(Ubuntu/Linaro 4.4.4-14ubuntu5.1)4.4.5运行Ubuntu 10.10.

当我使用GNU gdb(GDB)7.2-ubuntu调试第一个程序时,我可以直到第一个execv语句,但随后这两个文件继续运行.即使我将follow-exec-mode设置为new,我也无法进入第二个程序.当我设置catch exec时,gdb会在每次调用execv时停止(某些如何没有第二个程序的链接源,并且我无法退出gdb,因为它有点挂起!?)但是我无法跳过调用"新"(作为exec替换过程)的劣质程序.

那么怎么做呢?必须有一种方法可以进入新的流程吗?难道我做错了什么?

干杯

c debugging gdb execv

8
推荐指数
1
解决办法
5645
查看次数

量角器开关目标选项卡保持"未聚焦"

我有一个问题,switchTo没有"关注"有问题的标签.我收到了当前选项卡的数组,getAllWindowHandles并且量角器将操作指向正确的选项卡,但它永远不会弹出到前台.因此元素永远不可见.我在这里做错了吗?(量角器2.0.0,当前的Chrome)

var tabs;

function switchToUser1() {
    return browser.switchTo().window(tabs[0]);
}

function switchToUser2() {
    return browser.switchTo().window(tabs[1]);
}

beforeAll(function() {
    browser.executeScript("window.open('about:blank');");
    browser.getAllWindowHandles().then(function(handles) {
        tabs = handles;
    });
    switchToUser1();
    userPO.login(login1);
    switchToUser2();
    userPO.login(login2);
});
Run Code Online (Sandbox Code Playgroud)

selenium selenium-webdriver protractor

5
推荐指数
0
解决办法
891
查看次数