小编Shl*_*rtz的帖子

如何在自定义指令中获取评估属性

我试图从我的自定义指令获取一个评估属性,但我找不到正确的方法.

我已经创建了这个jsFiddle来详细说明.

<div ng-controller="MyCtrl">
    <input my-directive value="123">
    <input my-directive value="{{1+1}}">
</div>

myApp.directive('myDirective', function () {
    return function (scope, element, attr) {
        element.val("value = "+attr.value);
    }
});
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

javascript binding directive angularjs

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

使用ng-include时失去范围

我有这个模块路线:

var mainModule = angular.module('lpConnect', []).
    config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/home', {template:'views/home.html', controller:HomeCtrl}).
        when('/admin', {template:'views/admin.html', controller:AdminCtrl}).
        otherwise({redirectTo:'/connect'});
}]);
Run Code Online (Sandbox Code Playgroud)

主页HTML:

<div ng-include src="views.partial1"></div>
Run Code Online (Sandbox Code Playgroud)

partial1 HTML:

<form ng-submit="addLine()">
    <input type="text" ng-model="lineText" size="30" placeholder="Type your message here">
</form>
Run Code Online (Sandbox Code Playgroud)

HomeCtrl:

function HomeCtrl($scope, $location, $window, $http, Common) {
    ...
    $scope.views = {
        partial1:"views/partial1.html"
    };

    $scope.addLine = function () {
        $scope.chat.addLine($scope.lineText);
        $scope.lines.push({text:$scope.lineText});
        $scope.lineText = "";
    };
...
}
Run Code Online (Sandbox Code Playgroud)

addLine函数$scope.lineTextundefined,这可以通过添加ng-controller="HomeCtrl"来解决partial1.html,但是它会导致控制器被调用两次.我在这里错过了什么?

html javascript angularjs angularjs-scope angularjs-ng-include

180
推荐指数
3
解决办法
11万
查看次数

IOS - 如何使用swift以编程方式进行segue

我正在创建一个使用Facebook SDK对用户进行身份验证的应用.我试图在一个单独的类中巩固facebook逻辑.这是代码(为简单起见而剥离):

import Foundation

class FBManager {
    class func fbSessionStateChane(fbSession:FBSession!, fbSessionState:FBSessionState, error:NSError?){
        //... handling all session states
        FBRequestConnection.startForMeWithCompletionHandler { (conn: FBRequestConnection!, result: AnyObject!, error: NSError!) -> Void in

            println("Logged in user: \n\(result)");

            let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
            let loggedInView: UserViewController = storyboard.instantiateViewControllerWithIdentifier("loggedInView") as UserViewController

            loggedInView.result = result;

            //todo: segue to the next view???
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的类方法来检查会话状态更改,它工作正常.

问:获得用户数据后,如何从此自定义类中转到下一个视图?

编辑:只是为了清楚,我在故事板上有一个带标识符的segue,我正试图找到一种方法来从一个不是视图控制器的类执行一个segue

iphone facebook ios segue swift

178
推荐指数
6
解决办法
21万
查看次数

AngularJS - 如何获取ngRepeat过滤结果参考

我正在使用带有过滤器的ng-repeat指令,如下所示:

ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4"
Run Code Online (Sandbox Code Playgroud)

我可以看到渲染结果很好; 现在我想在我的控制器中对该结果运行一些逻辑.问题是如何获取结果项引用?

更新:


只是为了澄清:我正在尝试创建一个自动完成,我有这个输入:

<input id="queryInput" ng-model="query" type="text" size="30" placeholder="Enter query">
Run Code Online (Sandbox Code Playgroud)

然后过滤结果:

<ul>
   <li  ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4">{{item.name}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

现在我想导航结果并选择其中一个项目.

javascript filter angularjs angularjs-ng-repeat

128
推荐指数
5
解决办法
8万
查看次数

NodeJS - setTimeout(fn,0)vs setImmediate(fn)

这两者有什么区别,我什么时候才能使用另一个?

javascript node.js

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

IOS - 如何使用水平滚动列表创建TabelView

我正在尝试使用可滚动的水平项(具有未知数量的项目)来实现表视图,如下图所示:

在此输入图像描述

用户界面的行为应如下:

  1. 在初始状态下,表格单元格显示标签和一些文本,圆形项目从右侧弹出
  2. 如果用户从右向左滑动,标签和文本会淡出,水平列表(在单元格内)会占据它的位置

我想过使用TableView并dequeueReusableCellWithIdentifier创建一个原型单元格,但是我需要记住列表水平位置并正确启动单元格cellForRowAtIndexPath,这可能会影响性能.

问:为了实现这一目标,您将使用什么布局,任何输入/教程都将受到赞赏

layout uitableview ios swift

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

AngularJS - ng-style不更新css后台属性

我有一个返回图像URL的服务,并使用以下代码调用它:

angular.forEach(results, function (item) {
     item.img = "/images/searchItem.jpg";
     $http.post("https://my.api.com/?id=" + item.id).success(
           function (url) {
               item.img = url;
           });
});
Run Code Online (Sandbox Code Playgroud)

在我的视图中我曾经有一个带有ng-src属性的图像,完全像这样工作:

<img  ng-src="{{item.img}}">
Run Code Online (Sandbox Code Playgroud)

然后我决定在SPAN上使用背景图像:

<span ng-style="{'background':'transparent url({{item.img}})'}"></span>
Run Code Online (Sandbox Code Playgroud)

现在流程只在第一次运行时工作,之后我可以看到(在控制台中)以下的html

<span ng-style="{'background':'transparent url(http://expertsimages.liveperson.com/images/rating/rate10.gif)'}" style="background-image: url(https://fb.lp-chat.com/images/searchItem.jpg); background-color: transparent; background-position: initial initial; background-repeat: initial initial;"></span>
Run Code Online (Sandbox Code Playgroud)

这表明变量已更新,但html仍处于初始状态.

我尝试在发布成功时调用apply/digest,但是已经有一个错误$ digest正在进行中(这是有意义的).很明显,在正常摘要之后(例如在其他ui更改上),正在应用样式,我看到了正确的图像.

我在这里错过了什么?

更新: 我已经创建了一个JS小提琴,演示了这个问题......看起来像是一个有角度的错误.

html javascript css angularjs

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

创建通用控制器功能

如何创建某种可以从我的所有控制器访问的utils包?

我的主模块中有这个路由代码:

'use strict';

angular.module('lpConnect', []).
    config(['$routeProvider', function($routeProvider) {
    $routeProvider.
        when('/home', {template: 'views/home.html', controller: HomeCtrl}).
        when('/admin', {template: 'views/admin.html', controller: AdminCtrl}).
        when('/connect', {template: 'views/fb_connect.html', controller: MainAppCtrl}).
        otherwise({redirectTo: '/connect'});
}]);
Run Code Online (Sandbox Code Playgroud)

我想要一个可以共同的功能HomeCtrl,AdminCtrlMainAppCtrl.

我应该如何在AngularJS中做到这一点?

javascript web angularjs angularjs-service

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

Android - 如何使用common属性查找多个视图

我有一个多个ImageViews 的布局,其中一些图像需要具有相同的onClickListener.我希望我的代码具有灵活性,能够获得这些代码的集合,View在运行时迭代并添加监听器.

有没有像findViewById这样的方法会返回一个Views而不是一个s 的集合?

android view

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

Android - 是否可以直接在图层列表XML定义中声明alpha掩码?

一个新手问题

我有这个layer.xml,我用它作为ImageView的源.还有两个图像,mask.png和image.jpg

layers.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap  android:src="@drawable/image" android:gravity="center"/>
    </item>
    <item>
        <bitmap  android:src="@drawable/mask" android:gravity="center"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

ImageView的:

<ImageView
 android:id="@+id/img_B"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:src="@drawable/layers"/>
Run Code Online (Sandbox Code Playgroud)

目前输出只是图像上的png.我希望png充当面具,使用png alpha通道剪切图像,如下所示: 在此输入图像描述

这可能直接在xml中,或者我必须通过代码来完成吗?

谢谢你的建议 ;)

更新:目前我使用代码替换整个ImageView实现了我的目标

ImageView img = (ImageView) findViewById(imgID);

Canvas canvas = new Canvas();
Bitmap mainImage = BitmapFactory.decodeResource(getResources(), R.drawable.img);
Bitmap mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask);
Bitmap result = Bitmap.createBitmap(mainImage.getWidth(), mainImage.getHeight(), Bitmap.Config.ARGB_8888);

canvas.setBitmap(result);
Paint paint = new Paint();
paint.setFilterBitmap(false);

canvas.drawBitmap(mainImage, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);

img.setImageBitmap(result);
img.invalidate();
Run Code Online (Sandbox Code Playgroud)

png android alphablending mask android-layout

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