小编Spe*_*cer的帖子

验证单选按钮AngularJS

这似乎应该相当容易,但我找不到答案.我有一个表单,我需要验证是否已从广播组中进行选择.我尝试在单选按钮上使用'required'属性,但是当表单被验证时,它会抱怨,除非选择了所有的单选按钮(这在设计上是不可能的).

在AngularJS中验证无线电组选择的正确方法是什么?

<form name="myForm" ng-submit="submitForm()" ng-controller="ExampleController">
  <input type="radio" ng-model="color" value="red" required>  Red <br/>
  <input type="radio" ng-model="color" value="green" required> Green <br/>
  <input type="radio" ng-model="color" value="blue" required> Blue <br/>
  <tt>color = {{color | json}}</tt><br/>
  <button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

单击Plnkr中的提交按钮可显示该行为.

http://plnkr.co/edit/3qcIbMvJk19OvokcHe2N?p=preview

html javascript forms angularjs

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

如何将许多值传递给Angularjs指令?

我正在通过指令创建一个可重用的html.html会有一些我希望从原始范围传递的变量.通过在指令上声明属性,然后创建隔离范围并捕获它们,可以轻松完成此操作.问题是,对于大量变量,有更好的方法吗?我想过要传递一个像这样的物体{firstAttr: $scope.one, secondAttr: $scope.two...}并将这个物体分开以获得每件物品.这是第一次工作,但双向数据绑定不起作用(即使使用'=').

问题在于绑定的是对象,而不是对象的每个部分.我可以使用指令中的compile函数将每个属性添加到元素中吗?所以:

<mydirective databinding="{one:'first one', two:'second one'}">
Run Code Online (Sandbox Code Playgroud)

将被翻译成:

<mydirective one="first one" two="second one">
Run Code Online (Sandbox Code Playgroud)

这样,通过捕获指令中的属性,我的数据绑定将按预期工作.我将如何完成该设计,还是完全采用另一种方式来实现这一目标?

javascript angularjs angularjs-directive

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

转换为Dalvik格式失败,导出时Android中出现错误1(adt 21)

我知道这个问题的一种形式是存在的,但我找不到任何适合我的情况的东西,所以在这里.

我的应用程序在模拟器中进行测试时编译并运行完美,但是当我尝试导出已签名的apk时,我得到了Conversion to Dalvik format failed with error 1.Eclipse错误日志显示此堆栈跟踪:

com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:751)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:269)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:296)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:233)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:218)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Run Code Online (Sandbox Code Playgroud)

我没有其他人似乎有的命名冲突(至少它在错误中没有这么说),我很难过为什么它在模拟器中运行,但我无法导出.

顺便说一句,我也没有使用ProGuard.

android

13
推荐指数
2
解决办法
7487
查看次数

我可以获得Angular元素的编译html吗?

我使用$ compile服务编译了一个元素.如果我直接将它添加到DOM,它看起来很棒,并且所有绑定都是正确的.如果我想将该元素作为字符串,则显示{{stuffHere}}而不是绑定.有没有办法在编译后获取元素的html?

$templateCache.put('template', '<div><div><div><span>content is {{content}}</span></div></div>   </div>');

$scope.content = 'Hello, World!';

var el = $compile($templateCache.get('template'))($scope);
$('body').append(el);

alert(el.html());
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/1sxvuyUZKbse862PieBa?p=preview

附加到正文的元素显示 content is Hello, World!

警报显示 <div><div><span ng-binding>{{content}}</span></div></div>

我希望从警报中看到的是 <div><div><span ng-binding>Hello World</span></div></div>

angularjs angularjs-compile

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

如何用我的主题指定黑暗动作模式

我知道有一些关于样式操作栏的上下文操作栏(ActionMode)部分的问题,但它们似乎并不能解决我所追求的问题.

我正在使用带有浅色主题和黑暗操作栏的工具栏.工具栏看起来像我想要的,但动作模式看起来像常规的黑暗主题.我需要改变自己的风格才能获得黑暗主题动作模式(不仅仅是动作栏)?似乎我应该能够通过点击进入快速,Theme.AppCompat因为这显示了CAB我想要的方式,但我不希望应用程序的其余部分变暗.

我只关心API 14+并使用支持工具栏代替操作栏.

这是我的基本风格

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:actionModeBackground">@color/colorActionMode</item>
    <item name="android:windowActionModeOverlay">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

工具栏样式

<style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
    <item name="actionMenuTextColor">@color/abc_primary_text_material_dark</item>
    <item name="android:textColorSecondary">@color/abc_primary_text_material_dark</item>
    <item name="android:background">@color/colorPrimaryDark</item>
</style>
Run Code Online (Sandbox Code Playgroud)

工具栏布局文件(此处设置popupTheme似乎没有任何效果).

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    app:theme="@style/AppTheme.Toolbar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
    android:elevation="2dp"
    android:focusable="false"/>
Run Code Online (Sandbox Code Playgroud)

这是我的工具栏(这就是我想要的)

样式工具栏

这是我的ActionMode(我需要反转)

我的行动模式

这就是我想要ActionMode的样子(我通过改变我的样式Theme.AppCompat而不是继承而得到的Theme.AppCompat.Light.DarkActionBar.问题是应用程序的其余部分变暗,我不想要.

黑暗的动作模式

android android-actionbar android-actionmode android-toolbar

9
推荐指数
2
解决办法
4221
查看次数

使用javascript获取相对于moniter的元素位置

有没有办法获得一个元素的位置(比如一个按钮)相对于整个显示器,而不仅仅是我正在使用的页面?到目前为止我找到的所有解决方案都可以在页面上找到元素的位置,但我想知道我是否能够分辨出按钮在屏幕上的位置,而不仅仅是我的页面.

html javascript jquery

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

如何制作可重用的AngularJs组件

这似乎应该很容易,但我无法找到它的文档.我想知道如何使Angular组件(让我们说一个过滤器)可以在不同的应用程序中重用.我已经制作了一个简单的过滤器来格式化电话号码,我希望能够在任何应用程序中使用它.目前声明如下:

var myModule = angular.module('myModule', ['ngSanitize']);

myModule.filter('formatFilter', function() {
  return function(input) {
    return input.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
  }
});
Run Code Online (Sandbox Code Playgroud)

问题是如何使这个过滤器可重用.现在它只是附加到'myModule',但我怎么能把它从这个文件中删除所以我可以在其他地方重用它?

angularjs angularjs-directive

5
推荐指数
1
解决办法
1711
查看次数

在 RxJs 和 Angular 中测试可观察的“下一个”回调

我正在尝试使用 RxJs Observables 在 Angular 中做一个非常简单的测试,但我做的很短。这就是我基本上要测试的内容:

// We're inside some Angular component here...
let testMe = 0;

function somethingOrOther(): void {

    this.someService.methodReturningObservable()
      .subscribe(
          (nextValue: number): void => {
              testMe += nextValue;
          }
      ) 
}
Run Code Online (Sandbox Code Playgroud)

testMe当后面的 observablemethodReturningObservable发出值时,如何测试是否正确更新?

我用这个尝试过:

it(`works 'cuz I want it to`, fakeAsync(() => {
    spyOn(this.someService, 'methodReturningObservable').and.returnValue(cold('a', {a: 10}));

    tick();

    expect(component.testMe).toBe(10);
}));
Run Code Online (Sandbox Code Playgroud)

所以,tick()这里似乎没有做任何事情。没有什么能让我cold对我的间谍发出任何价值。

我尝试了getTestScheduler.flush(),如弹珠部分下的https://netbasal.com/testing-observables-in-angular-a2dbbfaf5329所示。

我可以使用这样的弹珠在 observable 上发出值吗?这在 AngularJS 中非常容易,只需触发一个摘要,但我似乎无法让 Anguar 让我进入下一个可观察的回调。

rxjs angular jasmine-marbles rxjs-marbles

5
推荐指数
1
解决办法
1654
查看次数

阻止ng-mouseenter和ng-mouseout触发内部元素

我有一个无序列表,其中每个li是一个固定的小尺寸,但当你将鼠标悬停在它上面时,它将扩展到完整尺寸.这是通过ng-mouseover和ng-mouseout完成的.问题是某些li文本包含其他标记(例如),当鼠标进入标记时,它会触发mouseout事件并折叠li.

显然,当鼠标位于其中时,所需的行为是使li保持放大,即使它在子元素上也是如此.有没有人知道如何基本上忽略内部元素的鼠标悬停?如果它进入子元素,我还需要忽略li的mouseout.

javascript angularjs

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

错误:找不到模块 nativescript-angular/router 或其相应的类型声明

阅读本机脚本文档并观看我想使用的视频,RouterExtensions但出现以下错误:

cannot find module nativescript-angular/router or its corresponding type declarations
Run Code Online (Sandbox Code Playgroud)

我的代码

cannot find module nativescript-angular/router or its corresponding type declarations
Run Code Online (Sandbox Code Playgroud)

屏幕错误

nativescript angular

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